无法访问Android KitKat上WebView中的资产

无法访问Android KitKat上WebView中的资产,android,android-studio,webview,Android,Android Studio,Webview,我的项目中包含了一个库,它公开了资产目录中的一些资产。 在安卓7上运行应用程序时,它工作得很好,webview可以很好地加载资产。今天,我在Kitkat(API 19)上测试了该应用程序,并加载了file://android_asset/someAsset.png未加载 我已经检查了为我的库创建的aar文件,它包含这些文件[显然,因为APK在Android 7上运行良好] 以下是我的网站设置: WebSettings s = getSettings(); s.setAllowFi

我的项目中包含了一个库,它公开了资产目录中的一些资产。 在安卓7上运行应用程序时,它工作得很好,webview可以很好地加载资产。今天,我在Kitkat(API 19)上测试了该应用程序,并加载了
file://android_asset/someAsset.png
未加载

我已经检查了为我的库创建的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时出现的错误是:
找不到文件

我已经阅读了SO上发布的一些问题,这些问题涉及IntelliJ设置:
“将依赖项中的资产包含到APK”
,这在Android Studio中已经不存在了。然而,我发现这个文档页面:这表明,添加

dependencies {
    compile project(':myLib')
}
足以向主项目提供资产[而且显然如此,因此AAR内容]

但是,我无法让这些资源出现


我还尝试将资产目录从库复制到主项目,但仍然没有成功。它们不是由webview加载的,我得到了相同的错误。

我将回答我自己的问题,因为无论问题多么愚蠢,谁知道,也许有人会偶然发现类似的问题

我使用
WebViewClient
shouldInterceptRequest
方法加载
WebView
的文件,因为所有内容都是加密的,我必须先解密

从棒棒糖开始,该方法具有不同的签名:

public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request)
而不是

public WebResourceResponse shouldInterceptRequest(final WebView view, String url)
由于我使用新设备编写代码,我只需要:

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { ... }
而且效果很好。在旧设备上进行测试时,该方法根本没有被触发,并且无法找到预期的文件

在我添加了对这个方法的支持之后,一切都开始起作用了


感谢@commonware的评论。

尝试
文件://
,而不是
文件://
。我一直在将内容从资产加载到
WebView
,没有问题。例如,从中看到。