Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 升级cordova应用程序时出错_Java_Android_Cordova_Phonegap Plugins - Fatal编程技术网

Java 升级cordova应用程序时出错

Java 升级cordova应用程序时出错,java,android,cordova,phonegap-plugins,Java,Android,Cordova,Phonegap Plugins,出于安全考虑,我正在尝试将phonegap Android应用程序从cordova 3.5.0升级到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( 16

出于安全考虑,我正在尝试将phonegap Android应用程序从cordova 3.5.0升级到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)

要更新cordova项目,您必须执行以下操作:

首先使用更新CLI版本

npm update -g cordova
然后转到项目文件夹并执行以下操作:

cordova platform update android
编辑:我还没有看过其他答案的所有结果,我现在意识到这个答案可能对OP没有真正的用处,但无论如何,它可能会帮助一些人与Cordova 3.x->5迁移抗争。。。 更新cordova时,通常还必须更新平台和插件

因此,在像以前那样升级CLI之后,必须删除所有平台和插件,然后重新安装它

(如果您有仅在平台中的内容,请考虑在保存之前保存)

在开始之前,请保存您使用的插件列表

cordova plugin list
然后清除所有内容(windows命令提示符):

或者对于linux/OS X:

rm -rf platforms
rm -rf plugins
请注意,这是一种删除平台和插件的“野蛮”方式,您可以只运行
cordova platform remove android
,但随后您必须处理platforms.json文件,您可以对每个插件使用
cordova plugin remove…
,但时间会更长

然后使用
cordova plugin add…
重新添加所有插件

请小心,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

看起来你已经“部分升级”了你的项目。我建议您从一个全新的5.11 Cordova项目开始,并以与最初的3.5.0项目相同的方式构建它

尝试自动化(如脚本)构建项目的过程,这样您就可以始终从一个全新的Cordova项目开始,并自动构建它,使其成为您的完整应用程序


我在过去使用过这个选项来克服一些无法解释的问题——所有这些都是由于升级没有像应该的那样顺利

你有最新的SDK版本吗(我想是22个)?我不确定,但是有时候,删除插件并重新添加它们会很好地重新生成代码。希望这只是为了你。@jcesarmobile npm update-g,然后我在配置中更改了phonegap版本。xml@LeZohan68只是尝试了一下,但没有起作用我很抱歉,但在做了您所说的之后,错误完全相同:(嗯,我想不是。无论如何,目前我已经删除了所有插件,如果你再次添加它们,问题依然存在?如果你创建了一个新的空项目,你是否也有同样的问题?你是否安装了java 7或java 8?是的,如果我再次添加它们,问题依然存在。不,新的应用程序运行正常。(但将整个应用程序移动到新项目会有点挑战性-请帮助我:|即使将应用程序移动到新项目,问题仍然存在![现在非常绝望]在这方面,Del不是Mac OS席上的命令,在这个问题中没有指定OS,所以我去了最常见的窗口:在OS X中,应该用RM-R代替Del(但是实际上,即使是Windows,Del也不是最好的命令)。
cordova plugin add android