开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:393

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 761|回复: 29

[脚本] 安卓平台上读取XML的问题

[复制链接]  [移动端链接]
3偶尔光临
227/300
排名
11596
昨日变化
6

15

主题

85

帖子

227

积分

Rank: 3Rank: 3Rank: 3

UID
125308
好友
0
蛮牛币
224
威望
0
注册时间
2015-10-12
在线时间
85 小时
最后登录
2017-2-23
发表于 2016-8-20 16:37:40 | 显示全部楼层 |阅读模式
5蛮牛币
本帖最后由 小酸奶 于 2016-8-20 16:41 编辑

[C#] 纯文本查看 复制代码
string filePath= Application.persistentDataPath + "/PointXML.xml"; void Start(){
StartCoroutine(ReadAndroid());
}
 IEnumerator ReadAndroid()
    {
        WWW www = new WWW(filePath);
        while (!www.isDone)
        {
            yield return www;
           ...
        }
    }



然后是load(www.text)

我用上面的方法来在安卓手机上进入读取xml文件的操作,但是导出APK包后读取不了,这是为什么呢?还有个问题是用Application.persistentDataPath的话,xml文件应该要放在什么目录下?而Application.streamingAssetsPath我用过了也不行,而且这个只能用于读不能写。


回复

使用道具 举报

排名
352
昨日变化
3

5

主题

361

帖子

2235

积分

Rank: 11Rank: 11Rank: 11Rank: 11Rank: 11

UID
31708
好友
2
蛮牛币
5215
威望
0
注册时间
2014-6-28
在线时间
635 小时
最后登录
2017-2-25

活力之星

QQ
发表于 2016-8-20 16:37:41 | 显示全部楼层
小酸奶 发表于 2016-8-21 21:54
试了不行呀版主大人,还有一个就是这个方法是不是只能读不能写呢?

好打脸~
上面不行的原因是Application.dataPath 不能再宏定义的时候获得~
改成这样就行~
[C#] 纯文本查看 复制代码
using UnityEngine;
using System.Collections;

public class ReadXML : MonoBehaviour
{
	string xmlPath 
	{
		get
		{
			switch (Application.platform)
			{
				case RuntimePlatform.Android:
					return "jar:file://" + Application.dataPath + "!/assets/Test.xml";
				case RuntimePlatform.WindowsEditor:
					return "file://" + Application.streamingAssetsPath + "/Test.xml";
				default:
					return "";
			}
		}
	}
	IEnumerator Start()
	{
		WWW www = new WWW(xmlPath);
		yield return www;
		if (string.IsNullOrEmpty(www.error))
		{
			Debug.LogError(www.text);
		}
		else
		{
			Debug.LogError(www.error);
		}
	}

	// Update is called once per frame
	void Update()
	{

	}
}

如果想写的话,就把这个复制到Application.persistentDataPath路径下就可以了~

回复

使用道具 举报

4四处流浪
342/500
排名
6923
昨日变化
7

0

主题

87

帖子

342

积分

Rank: 4

UID
96996
好友
1
蛮牛币
1920
威望
0
注册时间
2015-5-2
在线时间
127 小时
最后登录
2016-10-11
QQ
发表于 2016-8-20 16:58:32 | 显示全部楼层
Application.persistentDataPath目录是安装后创建的目录,所以对于全新安装APK的Application.persistentDataPath目录为空,自然读取失败。
所以正确顺序是,先把xml文件放在Application.streamingAssetsPath中(对应工程 StreamingAssets目录),第一次启动时将文件拷贝到Application.persistentDataPath目录下,之后再对该目录进行读写操作。

回复

使用道具 举报

3偶尔光临
227/300
排名
11596
昨日变化
6

15

主题

85

帖子

227

积分

Rank: 3Rank: 3Rank: 3

UID
125308
好友
0
蛮牛币
224
威望
0
注册时间
2015-10-12
在线时间
85 小时
最后登录
2017-2-23
 楼主| 发表于 2016-8-20 17:16:56 | 显示全部楼层
hxgame 发表于 2016-8-20 16:58
Application.persistentDataPath目录是安装后创建的目录,所以对于全新安装APK的Application.persistentDat ...

请问如何进行拷贝到那个目录下呢?
[发帖际遇]: 小酸奶 被钱袋砸中进医院,看病花了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
788/1000
排名
3101
昨日变化
3

15

主题

186

帖子

788

积分

Rank: 5Rank: 5

UID
109061
好友
0
蛮牛币
187
威望
0
注册时间
2015-6-17
在线时间
279 小时
最后登录
2017-2-23
QQ
发表于 2016-8-20 17:21:40 | 显示全部楼层
你可以直接更改读取目录的,跳出来想一下》》》

回复

使用道具 举报

3偶尔光临
227/300
排名
11596
昨日变化
6

15

主题

85

帖子

227

积分

Rank: 3Rank: 3Rank: 3

UID
125308
好友
0
蛮牛币
224
威望
0
注册时间
2015-10-12
在线时间
85 小时
最后登录
2017-2-23
 楼主| 发表于 2016-8-20 17:22:55 | 显示全部楼层
947633658 发表于 2016-8-20 17:21
你可以直接更改读取目录的,跳出来想一下》》》

。。。你这样讲太抽象了啦
[发帖际遇]: 小酸奶 乐于助人,奖励 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
788/1000
排名
3101
昨日变化
3

15

主题

186

帖子

788

积分

Rank: 5Rank: 5

UID
109061
好友
0
蛮牛币
187
威望
0
注册时间
2015-6-17
在线时间
279 小时
最后登录
2017-2-23
QQ
发表于 2016-8-20 17:25:36 | 显示全部楼层
小酸奶 发表于 2016-8-20 17:22
。。。你这样讲太抽象了啦

其实就是你把读取目录给改了就行
[发帖际遇]: 一个袋子砸在了 947633658 头上,947633658 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

3偶尔光临
227/300
排名
11596
昨日变化
6

15

主题

85

帖子

227

积分

Rank: 3Rank: 3Rank: 3

UID
125308
好友
0
蛮牛币
224
威望
0
注册时间
2015-10-12
在线时间
85 小时
最后登录
2017-2-23
 楼主| 发表于 2016-8-20 17:27:02 | 显示全部楼层
947633658 发表于 2016-8-20 17:25
其实就是你把读取目录给改了就行

主要是读取的目录是手机的目录呀,你意思是直接改成手机目录的路径吗?但是具体也不清楚路径是啥

回复

使用道具 举报

2初来乍到
128/150
排名
10693
昨日变化
5

3

主题

24

帖子

128

积分

Rank: 2Rank: 2

UID
111522
好友
0
蛮牛币
239
威望
0
注册时间
2015-7-1
在线时间
51 小时
最后登录
2017-2-24
发表于 2016-8-20 17:30:24 | 显示全部楼层
貌似是路径的问题 "jar:file://" + Application.dataPath + "!/assets/"+"a.txt"你试试这个

回复

使用道具 举报

3偶尔光临
227/300
排名
11596
昨日变化
6

15

主题

85

帖子

227

积分

Rank: 3Rank: 3Rank: 3

UID
125308
好友
0
蛮牛币
224
威望
0
注册时间
2015-10-12
在线时间
85 小时
最后登录
2017-2-23
 楼主| 发表于 2016-8-20 17:31:01 | 显示全部楼层
tw2596 发表于 2016-8-20 17:30
貌似是路径的问题 "jar:file://" + Application.dataPath + "!/assets/"+"a.txt"你试试这个

这个我试过了,也是不行
[发帖际遇]: 小酸奶 乐于助人,奖励 2 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
788/1000
排名
3101
昨日变化
3

15

主题

186

帖子

788

积分

Rank: 5Rank: 5

UID
109061
好友
0
蛮牛币
187
威望
0
注册时间
2015-6-17
在线时间
279 小时
最后登录
2017-2-23
QQ
发表于 2016-8-20 17:31:06 | 显示全部楼层
小酸奶 发表于 2016-8-20 17:27
主要是读取的目录是手机的目录呀,你意思是直接改成手机目录的路径吗?但是具体也不清楚路径是啥 ...

你可以直接把这个文件写入手记目录的

回复

使用道具 举报

3偶尔光临
227/300
排名
11596
昨日变化
6

15

主题

85

帖子

227

积分

Rank: 3Rank: 3Rank: 3

UID
125308
好友
0
蛮牛币
224
威望
0
注册时间
2015-10-12
在线时间
85 小时
最后登录
2017-2-23
 楼主| 发表于 2016-8-20 17:33:53 | 显示全部楼层
947633658 发表于 2016-8-20 17:31
你可以直接把这个文件写入手记目录的

可否告诉我一下怎么个做法呢我都整了一天了
[发帖际遇]: 小酸奶 发帖时在路边捡到 2 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复

使用道具 举报

2初来乍到
128/150
排名
10693
昨日变化
5

3

主题

24

帖子

128

积分

Rank: 2Rank: 2

UID
111522
好友
0
蛮牛币
239
威望
0
注册时间
2015-7-1
在线时间
51 小时
最后登录
2017-2-24
发表于 2016-8-20 17:34:59 | 显示全部楼层
http://www.cnblogs.com/wonderKK/p/3969284.html这个路径的,应该有帮助

回复

使用道具 举报

3偶尔光临
227/300
排名
11596
昨日变化
6

15

主题

85

帖子

227

积分

Rank: 3Rank: 3Rank: 3

UID
125308
好友
0
蛮牛币
224
威望
0
注册时间
2015-10-12
在线时间
85 小时
最后登录
2017-2-23
 楼主| 发表于 2016-8-20 21:23:28 | 显示全部楼层
tw2596 发表于 2016-8-20 17:34
http://www.cnblogs.com/wonderKK/p/3969284.html这个路径的,应该有帮助

恩,我看了下这个,等会去研究这个看看

回复

使用道具 举报

7日久生情
3264/5000
排名
2496
昨日变化
1

3

主题

2436

帖子

3264

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
78862
好友
3
蛮牛币
9397
威望
0
注册时间
2015-3-11
在线时间
427 小时
最后登录
2017-1-31
QQ
发表于 2016-8-21 06:53:15 来自Mobile--- | 显示全部楼层
写的话你新建一个目录,放到assets下面,Application.persistentDataPath+/+目录

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表