我最近将我的应用从Phonegap 1.6升级到2.2。
我已经重构了所有内容(ex Plugin
- > CordovaPlugin
),我也使用了新的config.xml
。
应用程序编译和构建,但是我经常在logcat和错误对话框中收到错误。对话框显示[ERROR] Error initializing Cordova: Class not found
。
logcat错误是:
Line 6048 : Error initializing Network Connection: Class not found
我能错过什么? 问题发生在多个设备上。
更新
我已经将网络状态插件的config.xml从Network Status
更改为NetworkStatus
。它写着:<plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/>
答案 0 :(得分:2)
我遇到了这个问题,并将以下内容添加到config.xml
:
<plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/>
并将其添加到清单文件中:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
我最初将它们拿出来因为我“知道”我的应用程序不会使用任何通信。我忘记了模拟器与ADK“沟通”。
当我将项目转换为“生产”时,我会将这2行删除,以便该应用已准备好进行Google Play。
答案 1 :(得分:0)
我使用phonegap 3.x遇到了这个问题,问题原因是手机没有正确安装插件,或者他们一路上搞砸了。基本上,当您安装插件并为平台构建时,它会从plugins / org.apache.cordova.core.specific-plugin / www获取javascript文件,并将它们放在platforms / android / assets / www / plugins / org.apache中。 cordova.core.specific-plugin / www然后它接受Java文件(或iOS的目标C)并将它们放在平台/ android / src / org / apache / cordova / specificplugin
所有这些都是由plugins / org.apache.cordova.core.specific-plugin/plugin.xml指定的。如果您查看plugins.xml,您应该看到类似的内容:
<source-file src="src/android/NetworkManager.java" target-dir="src/org/apache/cordova/networkinformation" />
所以这告诉你在platforms / android / src / org / apache / cordova / networkinformation中应该有NetworkManager.java。正确的文件可以从plugins / org.apache.cordova.core.network-information / src / android / NetworkManager.java复制
现在所有这一切都应该自动发生,而不必触摸平台文件夹。但如果它搞砸了你可以通过将正确的java文件复制到正确的文件夹中来修复它。
答案 2 :(得分:0)
config.xml中的以下行适用于带有android
的cordova 6.2
<plugin name="cordova-plugin-network-information" value="org.apache.cordova.networkinformation"/>
名称应与插件中包含的名称相同。您可以在以下路径plugins/name-of-the-plugin/package.json
的项目文件夹中找到它。
该值应该是插件的包名称,可以在本机实现文件中找到。