由于安全性考虑,我正在尝试从cordova 3.5.0更新一个phone应用程序到cordova 5.1.1.
当我启动应用程序,我得到以下错误,但我不明白他们来自哪里..你能帮助我建议在哪里调查?
W/System.err( 1672): org.json.JSONException: Value PluginManager at 0 of type java.lang.String cannot be converted to int
W/System.err( 1672): at org.json.JSON.typeMismatch(JSON.java:100)
W/System.err( 1672): at org.json.JSONArray.getInt(JSONArray.java:357)
W/System.err( 1672): at org.apache.cordova.CordovaBridge.promptOnJsPrompt(CordovaBridge.java:131)
W/System.err( 1672): at org.apache.cordova.engine.SystemWebChromeClient.onJsPrompt(SystemWebChromeClient.java:119)
W/System.err( 1672): at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:655)
W/System.err( 1672): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 1672): at android.os.Looper.loop(Looper.java:137)
W/System.err( 1672): at android.app.ActivityThread.main(ActivityThread.java:4745)
W/System.err( 1672): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1672): at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err( 1672): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
W/System.err( 1672): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
W/System.err( 1672): at dalvik.system.NativeStart.main(Native Method)
W/System.err( 1672): org.json.JSONException: Value App at 0 of type java.lang.String cannot be converted to int
W/System.err( 1672): at org.json.JSON.typeMismatch(JSON.java:100)
W/System.err( 1672): at org.json.JSONArray.getInt(JSONArray.java:357)
W/System.err( 1672): at org.apache.cordova.CordovaBridge.promptOnJsPrompt(CordovaBridge.java:131)
W/System.err( 1672): at org.apache.cordova.engine.SystemWebChromeClient.onJsPrompt(SystemWebChromeClient.java:119)
W/System.err( 1672): at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:655)
W/System.err( 1672): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 1672): at android.os.Looper.loop(Looper.java:137)
W/System.err( 1672): at android.app.ActivityThread.main(ActivityThread.java:4745)
W/System.err( 1672): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1672): at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err( 1672): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
W/System.err( 1672): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
W/System.err( 1672): at dalvik.system.NativeStart.main(Native Method)
W/System.err( 1672): org.json.JSONException: Value File at 0 of type java.lang.String cannot be converted to int
W/System.err( 1672): at org.json.JSON.typeMismatch(JSON.java:100)
W/System.err( 1672): at org.json.JSONArray.getInt(JSONArray.java:357)
W/System.err( 1672): at org.apache.cordova.CordovaBridge.promptOnJsPrompt(CordovaBridge.java:131)
W/System.err( 1672): at org.apache.cordova.engine.SystemWebChromeClient.onJsPrompt(SystemWebChromeClient.java:119)
W/System.err( 1672): at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:655)
W/System.err( 1672): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 1672): at android.os.Looper.loop(Looper.java:137)
W/System.err( 1672): at android.app.ActivityThread.main(ActivityThread.java:4745)
W/System.err( 1672): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1672): at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err( 1672): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
W/System.err( 1672): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
W/System.err( 1672): at dalvik.system.NativeStart.main(Native Method)
编辑:我没有通过其他答案的所有意见,我现在意识到这个答案可能不是真的有用的OP,但无论如何,它可能会帮助有人与科尔多瓦3.x-> 5迁移战斗…
当您更新cordova时,您经常还要更新平台和插件.@H_301_10@
因此,像您那样升级CLI后,您必须删除所有平台和插件,然后重新安装.@H_301_10@
(如果您只有在平台上想要保存的内容)@H_301_10@
在我们开始之前,保存你使用的插件的列表@H_301_10@cordova plugin list
然后我们清理一切(Windows命令提示符):@H_301_10@rd /s/q platforms
rd /s /q plugins
或者对于linux / OS X:@H_301_10@rm -rf platforms
rm -rf plugins
请注意,它是一种“粗暴”的方式来删除平台和插件,你可以只是运行cordova平台删除android,然后你将不得不处理的文件platforms.json,你可以使用cordova插件删除…为每个插件,但它会更长.@H_301_10@
然后您使用cordova插件添加…来重新添加所有的插件.@H_301_10@
小心,cordova 5的核心插件现在使用npm而不是git,所以每个插件你必须检查新的id或者你可能会得到旧的版本.@H_301_10@
例如,使用@H_301_10@cordova plugin add cordova-plugin-camera
代替@H_301_10@cordova plugin add org.apache.cordova.camera
最后你必须添加负责安全的新插件@H_301_10@cordova plugin add cordova-plugin-whitelist
并在config.xml中配置它,并在您的html中添加一个CSP元标记.@H_301_10@
并重新添加平台:@H_301_10@cordova plugin add android