android_asset没有在Honeycomb上工作?

时间:2011-03-19 23:52:40

标签: android webview android-3.0-honeycomb

我有一个发货的Android应用程序,它会显示资产文件夹中包含的不定期静态网页。我一直在以编程方式显示这些:

webView = new WebView(PKBDocument.KnowledgeBook.KBContext);
setContentView(webView);
webView.loadUrl("file:///android_asset/path/to the/file.html");

这适用于API级别3 - 9.我最近收到了我的闪亮的新Xoom并尝试运行相同的应用程序,我收到错误

The webpage at file:///android_asset/path/to%20the/file.html might be temporarily down or it may have moved permanently to a new web address

所以,我开始尝试。 Honeycomb仿真器显示这些页面很好,但我的实际蜂窝设备(运行3.0.1)始终显示此错误。我可以使用AssetManager读取网页,然后使用loadDataWithBaseURL()显示它,但是网页中的图像链接不会加载(大概是因为找不到图像文件的路径)。

知道改变了什么,以及如何处理这个问题?

2 个答案:

答案 0 :(得分:6)

尝试删除空格。 This projectthis project在我的XOOM上都运行正常。

答案 1 :(得分:4)

对我来说问题是我用maven编译。有了maven,你的资产应该进入src/main/resources/assets而我在src/main/resources中拥有它们 - 这显然是错误的。

Honeycomb似乎对此更加严格。如果您不使用Maven,那么在apk文件中列出文件列表(它只是作为zip文件),并在资产目录中检查您的资产是否正确:

7z l target/*.jar

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=utf8,Utf16=on,HugeFiles=on,8 CPUs)

Listing archive: target/HP45-Droid-5.0.0.jar

--
Path = target/HP45-Droid-5.0.0.jar
Type = zip
Physical Size = 465392

   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2012-01-01 19:07:10 D....            0            0  META-INF
2012-01-01 19:07:08 .....          125          102  META-INF/MANIFEST.MF
2012-01-01 19:07:06 D....            0            0  assets
2012-01-01 19:07:06 .....        93692        93629  assets/45bk.jpg
2012-01-01 19:07:06 .....         3467         1408  assets/help.html