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

扫一扫,访问微社区

问答求助

关注:421

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

_____________________________________________________________________________________________________________
问答求助版块规则:

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

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

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

15

主题

94

帖子

245

积分

Rank: 3Rank: 3Rank: 3

UID
125308
好友
0
蛮牛币
278
威望
0
注册时间
2015-10-12
在线时间
92 小时
最后登录
2017-5-3
发表于 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我用过了也不行,而且这个只能用于读不能写。


回复

使用道具 举报

排名
309
昨日变化
1

5

主题

369

帖子

2447

积分

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

UID
31708
好友
2
蛮牛币
5575
威望
0
注册时间
2014-6-28
在线时间
702 小时
最后登录
2017-5-29

活力之星

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
排名
7382
昨日变化

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偶尔光临
245/300
排名
12091
昨日变化
3

15

主题

94

帖子

245

积分

Rank: 3Rank: 3Rank: 3

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

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

回复

使用道具 举报

6蛮牛粉丝
1062/1500
排名
2443
昨日变化

17

主题

213

帖子

1062

积分

Rank: 6Rank: 6Rank: 6

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

回复

使用道具 举报

3偶尔光临
245/300
排名
12091
昨日变化
3

15

主题

94

帖子

245

积分

Rank: 3Rank: 3Rank: 3

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

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

回复

使用道具 举报

6蛮牛粉丝
1062/1500
排名
2443
昨日变化

17

主题

213

帖子

1062

积分

Rank: 6Rank: 6Rank: 6

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

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

回复

使用道具 举报

3偶尔光临
245/300
排名
12091
昨日变化
3

15

主题

94

帖子

245

积分

Rank: 3Rank: 3Rank: 3

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

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

回复

使用道具 举报

3偶尔光临
173/300
排名
9609
昨日变化
2

3

主题

28

帖子

173

积分

Rank: 3Rank: 3Rank: 3

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

回复

使用道具 举报

3偶尔光临
245/300
排名
12091
昨日变化
3

15

主题

94

帖子

245

积分

Rank: 3Rank: 3Rank: 3

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

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

回复

使用道具 举报

6蛮牛粉丝
1062/1500
排名
2443
昨日变化

17

主题

213

帖子

1062

积分

Rank: 6Rank: 6Rank: 6

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

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

回复

使用道具 举报

3偶尔光临
245/300
排名
12091
昨日变化
3

15

主题

94

帖子

245

积分

Rank: 3Rank: 3Rank: 3

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

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

回复

使用道具 举报

3偶尔光临
173/300
排名
9609
昨日变化
2

3

主题

28

帖子

173

积分

Rank: 3Rank: 3Rank: 3

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

回复

使用道具 举报

3偶尔光临
245/300
排名
12091
昨日变化
3

15

主题

94

帖子

245

积分

Rank: 3Rank: 3Rank: 3

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

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

回复

使用道具 举报

9以坛为家
17047/50000
排名
1846
昨日变化
6

10

主题

1万

帖子

1万

积分

Rank: 9Rank: 9Rank: 9

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

回复

使用道具 举报

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

本版积分规则

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