上周我从Cordova 2.6.0升级到2.9.0。自从我得到dalvik错误以来我似乎无法摆脱,无论我尝试什么。它不会崩溃我的应用程序,但是,我不能再使用File API了。我在Android 2.2中测试我的应用程序,我的minSDK是8,我的targetSDK是17,而我也是17。这是logcat:
09-02 13:48:00.148: D/JsMessageQueue(1037): Set native->JS mode to 2
09-02 13:48:00.148: I/CordovaWebView(1037): Disabled addJavascriptInterface() bridge since Android version is old.
09-02 13:48:00.148: E/dalvikvm(1037): Could not find class 'android.webkit.WebResourceResponse', referenced from method org.apache.cordova.CordovaWebViewClient.getWhitelistResponse
09-02 13:48:00.148: W/dalvikvm(1037): VFY: unable to resolve new-instance 130 (Landroid/webkit/WebResourceResponse;) in Lorg/apache/cordova/CordovaWebViewClient;
09-02 13:48:00.158: W/dalvikvm(1037): VFY: unable to find class referenced in signature (Landroid/webkit/WebResourceResponse;)
09-02 13:48:00.158: W/dalvikvm(1037): VFY: unable to find class referenced in signature (Landroid/webkit/WebResourceResponse;)
09-02 13:48:00.158: W/dalvikvm(1037): VFY: unable to find class referenced in signature (Landroid/webkit/WebResourceResponse;)
09-02 13:48:00.158: D/DroidGap(1037): DroidGap.init()
09-02 13:48:00.168: D/CordovaWebView(1037): >>> loadUrl(file:///android_asset/www/index.html)
09-02 13:48:00.168: D/PluginManager(1037): init()
09-02 13:48:00.178: D/CordovaWebView(1037): >>> loadUrlNow()
任何人都知道这个奇怪问题的解决方案吗?
答案 0 :(得分:5)
根据缺失方法的文档,在API 11(Android 3.0)中添加了android.webkit.WebResourceResponse。似乎org.apache.cordova.CordovaWebViewClient
正在尝试使用Android 2.2中不存在的类。
这不一定是致命的。库包含引用旧版本平台上不存在的类的代码并不罕见。在运行时,它们会检测平台版本,但实际上并不使用这些类。
所以你应该忽略Dalvik验证者的投诉。在使用File API的位置查找任何失败消息。