由于安全性考虑,我正在尝试从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时,您经常还要更新平台和插件.
因此,像您那样升级CLI后,您必须删除所有平台和插件,然后重新安装.
(如果您只有在平台上想要保存的内容)
在我们开始之前,保存你使用的插件的列表
cordova plugin list
然后我们清理一切(Windows命令提示符):
rd /s/q platforms rd /s /q plugins
或者对于linux / OS X:
rm -rf platforms rm -rf plugins
请注意,它是一种“粗暴”的方式来删除平台和插件,你可以只是运行cordova平台删除android,然后你将不得不处理的文件platforms.json,你可以使用cordova插件删除…为每个插件,但它会更长.
小心,cordova 5的核心插件现在使用npm而不是git,所以每个插件你必须检查新的id或者你可能会得到旧的版本.
例如,使用
cordova plugin add cordova-plugin-camera
代替
cordova plugin add org.apache.cordova.camera
cordova plugin add cordova-plugin-whitelist
并在config.xml中配置它,并在您的html中添加一个CSP元标记.
并重新添加平台:
cordova plugin add android