Android PhoneGap 2.2 Сетевое подключение: класс не найден

Я недавно обновил свое приложение с PhoneGap 1.6 до 2.2. Я рефакторинг все (например 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"/>

3 ответа

У меня была эта проблема, и я ушел, добавив следующее к config.xml:

<plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/>

И добавив это в файл манифеста:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Изначально я вынул их, потому что "знал", что мое приложение не будет использовать никаких коммуникаций. Я забыл об эмуляторе, "общающемся" с ADK.

Я возьму эти две строки, когда переведу проект в "производство", чтобы приложение было готово для Google Play.

Следующая строка в config.xml работает для cordova 6.2 с андроидом

<plugin name="cordova-plugin-network-information" value="org.apache.cordova.networkinformation"/>

Имя должно совпадать с тем, что содержится в вашем плагине. Вы можете найти его в папке вашего проекта по следующему пути plugins/name-of-the-plugin/package.json, Значение должно быть именем пакета для плагина, который можно найти в собственном файле реализации.

У меня была эта проблема с использованием phonegap 3.x, и проблема оказалась в том, что phonegap неправильно установил плагины, или они просто запутались по пути. В основном, когда вы устанавливаете плагины и собираете для платформы, он берет файлы javascript из plugins/org.apache.cordova.core.specific-plugin/www и помещает их в платформы /android/assets/www/plugins/org.apache.cordova.core.specific-plugin/www, а затем он берет файлы Java (или цель C для iOS) и помещает их в платформы / 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" />

Это говорит о том, что в платформах / android / src / org / apache / cordova / networkinformation должен присутствовать NetworkManager.java. И прямо этот файл можно скопировать из плагина /org.apache.cordova.core.network-information/src/android/NetworkManager.java

Теперь все это должно происходить автоматически, не касаясь папки платформ. Но если он испортится, вы можете исправить это, скопировав правильные файлы Java в правильные папки.

Другие вопросы по тегам