在Android 2.2上运行HelloCordova时找不到类'android.webkit.WebResourceResponse'

时间:2013-05-08 15:50:42

标签: android eclipse cordova ubuntu

我尝试按照本教程: http://docs.phonegap.com/en/2.7.0/guide_getting-started_android_index.md.html#Getting%20Started%20with%20Android

并收到以下错误:

05-08 15:35:59.845: E/dalvikvm(307): Could not find class 'android.webkit.WebResourceResponse', referenced from method org.apache.cordova.CordovaWebViewClient.getWhitelistResponse

这里有一个人解释错误:https://issues.apache.org/jira/browse/CB-3041

This is a known issue. Because Android 2.3 does not have android.webkit.WebResourceResponse, this code is considered dead by Android 2.3's Dalvik. This means your whitelisting doesn't work properly like it does on Android 4.x, as per CB-2099. I'm going to keep this open, but lower the priority, since we know what causes it and it's an easy "First Bug" for someone if they really want to fix this.

他告诉修复很容易,但没有解释如何解决它 - .- 辉煌!

显然,一个修复不是用Android 2.2模拟器运行它,因为它适用于Android 4.2。

但是如何让它在Android 2.2中运行?

我想构建一个与API Level 8及更高版本兼容的应用程序。

1 个答案:

答案 0 :(得分:4)

这是因为Android 2.2没有带WebResource响应的更新webkit。

尝试从here下载cordova 2.2 jar并将其放在项目基础的/ libs文件夹中。如果没有,请创建一个。您可能还需要向源添加IceCreamCordovaWebViewClient.java(或者如果您选择下载cordova的源代码并将其添加为依赖项,则可以将其添加到该源)

或者,您可以尝试使用常规WebViewClient/ChromeClient并自行完成工作,MH中的this post概述,复制如下。

  

如果你想为Android 2.x做类似的事情,你可能想要   尝试使用前面提到的shouldOverrideUrlLoading(WebView view, String url)来避免加载页面,手动获取,   用你自己的css文件替换引用,最后调用   loadData(String data, String mimeType, String encoding)(或   WebView上的loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl)),传入   将html内容操纵为字符串。


编辑:

此外,您还可以尝试将WebResourceResponse和依赖项添加到您的src文件夹中。尝试从here

下载它们