我的项目中包含一个库,该库包含资产目录中的一些资产。 在Android 7上运行应用程序时,它运行良好,webview加载资产的情况良好。今天我已经测试了Kitkat(API 19)上的应用程序,并且加载的资源如file://android_asset/someAsset.png
未加载。无法在Android上的WebView中访问资产KitKat
我检查了为我的库创建的aar文件,它包含这些文件[显然,因为APK在Android 7上工作正常]。
这里是我的网络设置:
WebSettings s = getSettings();
s.setAllowFileAccess(true);
s.setSupportZoom(false);
s.setBuiltInZoomControls(false);
s.setDomStorageEnabled(true);
s.setJavaScriptCanOpenWindowsAutomatically(true);
s.setUseWideViewPort(true);
s.setLoadWithOverviewMode(true);
s.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
s.setJavaScriptEnabled(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
s.setMediaPlaybackRequiresUserGesture(false);
}
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
s.setAllowFileAccessFromFileURLs(true);
s.setAllowUniversalAccessFromFileURLs(true);
}
s.setGeolocationEnabled(false);
我得到的调试时,Chrome是错误:File not found
。
我读过一些SO上发布的问题,这些问题涉及到IntelliJ设置:"Include assets from dependencies into APK"
这在Android Studio中不再存在。然而,我发现这个文档页面:https://developer.android.com/studio/projects/android-library.html这表明,在添加
dependencies {
compile project(':myLib')
}
足以提供资产主体工程[和显然不行,因此AAR内容。
不过,我无法获得这些资源显示。
我也尝试将资产目录从库复制到主项目,但仍然没有运气。他们不是由webview加载,我得到相同的错误。
试试'file:///',而不是'file://'。我一直从资产加载内容到'WebView'没有问题。参见[我的书](https://commonsware.com/Android)[教程#12](https://github.com/commonsguy/cw-omnibus/tree/master/EmPubLite-AndroidStudio/T12-Book/EmPubLite) ), 例如。 – CommonsWare