我有一个发货的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()
显示它,但是网页中的图像链接不会加载(大概是因为找不到图像文件的路径)。
知道改变了什么,以及如何处理这个问题?
答案 0 :(得分:6)
尝试删除空格。 This project和this 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