2013-03-14 38 views
1

我想使用Android资产,并在官方文档中关注tutorialAndroid资产管理器例外

已经将资产类型设置为AndroidAssets,就像它说的那样,但是它没有找到该文件而抛出异常。我有一个根深蒂固的设备,所以经过检查,我注意到这些文件实际上并不在设备上(/data/data/com.company.application/files/SomeFile.txt)。

编辑:

String filename = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "AboutAssets.txt"); 
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read); 
+0

您是否在添加资产后执行完整的应用程序重建?你的设备植根于世的事实并不重要。 – Michael 2013-03-14 13:01:04

+0

您是否将文件的“BuildAction”设置为“AndroidAsset”? – 2013-03-14 18:55:08

+0

我做了这两件事,是的。 – jProg2015 2013-03-14 19:49:22

回答

0

不久前发布,最终没有使用Xamarin,因为我从未找到解决方案。我最近回到了Xamarin,最新的更新似乎已经解决了这个问题 - 同一个项目现在工作正常,没有任何改变。

所以如果有其他人遇到这种情况 - 尝试更新。

0

Android的资产都存储在APK文件,所以你不能使用你的代码找到该文件。这些文件没有绝对路径。

只需使用Assets.Open即可访问assets,与tutorial中教导的完全相同。

+0

不幸的是崩溃:然后我在论坛上阅读,尝试Path.Combine方法 – jProg2015 2013-03-16 23:47:03

+0

怎么来的?'File not found'异常?使用完全相同的行using(StreamReader sr = new StreamReader(Assets.Open(“read_asset.txt”))content = sr.ReadToEnd();'很难得到例外。 – 2013-03-17 01:32:05

+0

未找到文件或找不到文件路径的一部分。 AndroidAsset虽然。 – jProg2015 2013-03-18 12:02:19

0

你可以试试:

AssetManager assets = context.getAssets(); 
InputStream is = assets.open(filename); 

上下文对象是指应用程序的上下文。

+0

同样的问题:( – jProg2015 2013-03-18 22:49:20

+0

我添加了上下文对象。再试一次。 – 2013-03-21 16:15:56

+0

仍然没有发生:( – jProg2015 2013-04-03 09:02:23