gpt4 book ai didi

java - Android Phonegap 2.1 > 2.2 升级错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:40:11 24 4
gpt4 key购买 nike

我正在开发 Phonegap 应用程序,发现 Phonegap 最近已更新到 2.2,其中包含许多 Android 修复程序。所以我立即通过替换 xml、jar 和 JS 文件进行了更新。我的应用程序曾经运行良好。它使用自定义 Javascript 界面来添加附加功能。不幸的是,当升级到 2.2 时,我收到以下错误日志:

Pastebin error log

这是我在运行 4.0.4 的 Samsung Galaxy S2 上运行应用程序时遇到的错误。这是我正在使用的主要应用程序 Java 文件。

Pastebin Java File

希望大家帮我找出问题所在。我对可能导致 JNI 错误的原因一无所知。

编辑: 我在 android 2.2 模拟器上尝试了相同的代码,这给了我一个更具描述性的错误:

10-31 13:02:12.945: I/dalvikvm(543): Could not find method android.webkit.WebView.<init>, referenced from method org.apache.cordova.CordovaWebView.<init>
10-31 13:02:12.945: W/dalvikvm(543): VFY: unable to resolve direct method 3298: Landroid/webkit/WebView;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;IZ)V
10-31 13:02:12.945: D/dalvikvm(543): VFY: replacing opcode 0x70 at 0x0001
10-31 13:02:12.945: D/dalvikvm(543): VFY: dead code 0x0004-005b in Lorg/apache/cordova/CordovaWebView;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;IZ)V
10-31 13:02:13.195: I/CordovaLog(543): Changing log level to DEBUG(3)
10-31 13:02:13.205: I/CordovaLog(543): Found preference for useBrowserHistory=false
10-31 13:02:13.205: D/CordovaLog(543): Found preference for useBrowserHistory=false
10-31 13:02:13.205: I/CordovaLog(543): Found preference for exit-on-suspend=false
10-31 13:02:13.205: D/CordovaLog(543): Found preference for exit-on-suspend=false
10-31 13:02:13.215: W/CordovaWebView(543): useBrowserHistory=false is deprecated as of Cordova 2.2.0 and will be removed six months after the 2.2.0 release. Please use the browser history and use history.back().
10-31 13:02:13.245: D/JsMessageQueue(543): Set native->JS mode to 2
10-31 13:02:13.245: I/CordovaWebView(543): Disabled addJavascriptInterface() bridge since Android version is old.
10-31 13:02:13.255: D/CordovaWebView(543): Origin to allow: http://127.0.0.1*
10-31 13:02:13.255: D/CordovaWebView(543): Unlimited access to network resources
10-31 13:02:13.265: D/CordovaWebView(543): Origin to allow: http://api.enkhuizenapp.nl
10-31 13:02:13.265: D/CordovaWebView(543): Origin to allow: .*
10-31 13:02:13.265: I/CordovaLog(543): Found log level DEBUG
10-31 13:02:13.265: I/CordovaLog(543): Changing log level to DEBUG(3)
10-31 13:02:13.265: I/CordovaLog(543): Found preference for useBrowserHistory=false
10-31 13:02:13.265: D/CordovaLog(543): Found preference for useBrowserHistory=false
10-31 13:02:13.265: I/CordovaLog(543): Found preference for exit-on-suspend=false
10-31 13:02:13.265: D/CordovaLog(543): Found preference for exit-on-suspend=false
10-31 13:02:13.265: W/CordovaWebView(543): useBrowserHistory=false is deprecated as of Cordova 2.2.0 and will be removed six months after the 2.2.0 release. Please use the browser history and use history.back().
10-31 13:02:13.285: D/JsMessageQueue(543): Set native->JS mode to 2
10-31 13:02:13.285: I/CordovaWebView(543): Disabled addJavascriptInterface() bridge since Android version is old.
10-31 13:02:13.285: D/CordovaWebView(543): >>> loadUrl(file:///android_asset/www/menu.html)
10-31 13:02:13.285: D/PluginManager(543): init()
10-31 13:02:13.296: D/CordovaWebView(543): >>> loadUrlNow()
10-31 13:02:13.296: D/CordovaWebView(543): >>> loadUrl(file:///android_asset/www/main.html)
10-31 13:02:13.296: D/PluginManager(543): init()
10-31 13:02:13.315: D/CordovaWebView(543): >>> loadUrlNow()
10-31 13:02:13.955: D/dalvikvm(543): GC_FOR_MALLOC freed 1775 objects / 133528 bytes in 76ms
10-31 13:02:14.765: D/Cordova(543): onPageFinished(file:///android_asset/www/menu.html)
10-31 13:02:15.365: D/Cordova(543): onPageFinished(file:///android_asset/www/main.html)
10-31 13:02:15.685: I/Database(543): sqlite returned: error code = 14, msg = cannot open file at source line 25467
10-31 13:02:15.945: D/CordovaLog(543): Falling back on PROMPT mode since _cordovaNative is missing.
10-31 13:02:15.955: D/CordovaLog(543): file:///android_asset/www/scripts/cordova-2.2.0.js: Line 1032 : Falling back on PROMPT mode since _cordovaNative is missing.
10-31 13:02:15.955: I/Web Console(543): Falling back on PROMPT mode since _cordovaNative is missing. at file:///android_asset/www/scripts/cordova-2.2.0.js:1032
10-31 13:02:16.065: D/AndroidRuntime(543): Shutting down VM
10-31 13:02:16.065: W/dalvikvm(543): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
10-31 13:02:16.075: E/AndroidRuntime(543): FATAL EXCEPTION: main
10-31 13:02:16.075: E/AndroidRuntime(543): java.lang.NullPointerException
10-31 13:02:16.075: E/AndroidRuntime(543): at org.apache.cordova.api.Plugin.execute(Plugin.java:74)
10-31 13:02:16.075: E/AndroidRuntime(543): at org.apache.cordova.api.CordovaPlugin.execute(CordovaPlugin.java:61)
10-31 13:02:16.075: E/AndroidRuntime(543): at org.apache.cordova.api.PluginManager.exec(PluginManager.java:224)
10-31 13:02:16.075: E/AndroidRuntime(543): at org.apache.cordova.ExposedJsApi.exec(ExposedJsApi.java:43)
10-31 13:02:16.075: E/AndroidRuntime(543): at org.apache.cordova.CordovaChromeClient.onJsPrompt(CordovaChromeClient.java:213)
10-31 13:02:16.075: E/AndroidRuntime(543): at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:566)
10-31 13:02:16.075: E/AndroidRuntime(543): at android.os.Handler.dispatchMessage(Handler.java:99)
10-31 13:02:16.075: E/AndroidRuntime(543): at android.os.Looper.loop(Looper.java:123)
10-31 13:02:16.075: E/AndroidRuntime(543): at android.app.ActivityThread.main(ActivityThread.java:4627)
10-31 13:02:16.075: E/AndroidRuntime(543): at java.lang.reflect.Method.invokeNative(Native Method)
10-31 13:02:16.075: E/AndroidRuntime(543): at java.lang.reflect.Method.invoke(Method.java:521)
10-31 13:02:16.075: E/AndroidRuntime(543): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-31 13:02:16.075: E/AndroidRuntime(543): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-31 13:02:16.075: E/AndroidRuntime(543): at dalvik.system.NativeStart.main(Native Method)

提前致谢!

最佳答案

目前有一个针对此问题的解决方法,那就是您向 CordovaActivity 添加一个线程池:

private final ExecutorService threadPool = Executors.newCachedThreadPool();

当然,还要实现新添加的 getThreadPool() 方法。这是偶然添加的,希望能以某种方式封装在下一个版本中。

public ExecutorService getThreadPool()
{
return threadPool;
}

关于java - Android Phonegap 2.1 > 2.2 升级错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13194537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com