Ошибка инициализации Кордовы: класс не найден
Я следил за учебником Phonegap с официального сайта Phonegap.com(начиная с Android).
Я создал проект со следующими шагами.
- создала активность и расширена с "DroidGap" и добавила метод loadURL из onCreate().
- Добавлены кордова-2.0.0.js и cordova-2.0.0.jar в соответствующую папку.
- Добавлен файл jar в путь сборки
- Загрузил js файл из тега html
- Добавлены разрешения от AndroidMainfeast.xml
- скопировала папку xml, содержащую "configs.xml"
Теперь я не понимаю, где проблема. Он показывает ошибку ниже, как показано на скриншоте
![enter image description here]()
Вот мой HTML файл
<!DOCTYPE html>
<html>
<head>
<title>Notification Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
//
function onDeviceReady() {
// Empty
}
// Show a custom alert
//
function showAlert() {
navigator.notification.alert(
'You are the winner!', // message
'Game Over', // title
'Done' // buttonName
);
}
// Beep three times
//
function playBeep() {
navigator.notification.beep(3);
}
// Vibrate for 2 seconds
//
function vibrate() {
navigator.notification.vibrate(2000);
}
</script>
</head>
<body>
<p><a href="#" onclick="showAlert()">Show Alert</a></p>
<p><a href="#" onclick="playBeep()">Play Beep</a></p>
<p><a href="#" onclick="vibrate()">Vibrate</a></p>
</body>
</html>
Любые советы? Спасибо!
Ответы
Ответ 1
Это config.xml
не configs.xml
.
На основе журналов я вижу, что вам не хватает этого файла в каталоге приложений res/xml
. Он включен как часть дистрибутива в lib/android/res/xml/config.xml
, поэтому скопируйте этот файл в каталог res/xml
, и вы все должны быть установлены.
Ответ 2
Так же, как aharris88 в ответе на этот вопрос, у меня возникло сообщение об ошибке [CORDOVA] Error initilizing Cordova: Class not found
при использовании Cordova 3.1.0 на моем Android dev телефон после перехода с Phonegap 3.0.
Все попытки с помощью файла config.xml
в каталоге /platforms/android/res/xml
не помогли. Основываясь на вышеупомянутом ответе Stackoverflow, я попытался "начать все", переустановив поддержку платформы Android:
cordova platform rm android
cordova platform add android
После этого шага он снова работал, и я смог cordova build android && cordova run android
без каких-либо дополнительных проблем.
Ответ 3
У меня была эта ошибка из-за плагина, который я удалил. Я добавил
<plugin name="Device" value="org.apache.cordova.Device"/>
в файл config.xml и он исправил его.
Ответ 4
У меня у вас нет следующего плагина:
<plugin name="Device" value="org.apache.cordova.Device"/>
Вы должны установить это между <plugins></plugins>
.
как
<plugins>
<plugin name="Device" value="org.apache.cordova.Device"/>
</plugins>
Ответ 5
Ну, я обнаружил ошибку:
05-28 08: 19: 53.139: E/PluginManager (1478): ================================== ================================================== ==== 05-28 08: 19: 53.139: E/PluginManager (1478): ERROR: config.xml отсутствует. Добавьте res/xml/config.xml в свой проект. 05-28 08: 19: 53.139: E/PluginManager (1478): https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-android.git;a=blob;f=framework/res/xml/plugins.xml
но я нашел /res/xml/config.xml в своем проекте
Наконец, я обнаружил ошибку в org.apache.cordova.api.PluginManager:
public void loadPlugins() {
int id = this.ctx.getActivity().getResources().getIdentifier("config", "xml", this.ctx.getActivity().getClass().getPackage().getName());
...
должен измениться на:
public void loadPlugins() {
int id = this.ctx.getActivity().getResources().getIdentifier("config", "xml", this.ctx.getActivity().getPackageName());
...
вы можете узнать больше о методе "getIdentifier (String name, String defType, String defPackage)" в официальном документе
Ответ 6
У меня была эта проблема с помощью phonegap 3.x, и проблема оказалась в том, что в телефонной заставке неправильно установлены плагины, или они просто перепутались на этом пути. В основном, когда вы устанавливаете плагины и строите для платформы, он принимает файлы javascript из плагинов /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
И все это указано плагинами /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
Теперь все это должно происходить автоматически без необходимости касаться папки платформ. Но если это испортится, вы можете исправить это, вручную скопировав правильные файлы в правильные папки.
Ответ 7
Вы можете решить эту проблему, используя командную строку phonegap, выполнив следующие действия:
-
Удалить merges/android, platform/android, plugins/android.json
-
run phonegap local build android
Ответ 8
Была ли та же проблема с классом не найдена. Одна из проблем, которую нужно посмотреть, - убедиться, что файл android.json(или ios.json) обновляется в сборке. Шахта была фактически пуста.
Кроме того, удалите и добавьте плагины, как указано в некоторых других сообщениях.
Наконец, то, что сработало для меня, состояло в том, чтобы убедиться, что плагины были исправлены в файле config.xml:
<feature name="Device">
<param name="android-package" value="org.apache.cordova.device.Device"/>
</feature>
<feature name="Camera">
<param name="android-package" value="org.apache.cordova.camera.CameraLauncher"/>
</feature>
<feature name="Notification">
<param name="android-package" value="org.apache.cordova.dialogs.Notification"/>
</feature>
Обратите внимание на двойное обозначение "device.Device", а также подкласс для плагинов "камера" и "диалоги". Это неверно ссылается на документацию Phonegap.
Ответ 9
Я столкнулся с той же ошибкой: "Ошибка инициализации Кордовы: класс не найден", используя кордову с визуальной студией 2015. Но это была не единственная ошибка, ни один из моих плагинов, похоже, не попал в корыто. Я пробовал ВСЕ. От cordova platform rm/add android
x1000 раз, до удаления и повторного добавления плагинов вручную, ничто, кажется, не делает трюк.
![введите описание изображения здесь]()
Затем я сменил мою кордову-cli в файле taco.json с 5.3.3 до 5.4.0 и запустил ее на своем устройстве. Наконец, это все для меня. Затем я понизил версию кордовы до 5.3.3 (версия 5.4.0 до сих пор не поддерживается мостом adb). Попробуйте!
Ответ 10
[Решено в моем случае]
Во-первых, шаг шесть ошибочен: это config.xml, а не configs.xml
У меня такая же ошибка, несмотря на то, что у меня есть config.xml в папке res/xml.
Это связано с тем, что вам необходимо установить плагины вручную для основных функций API.
Через консоль перейдите к папке проекта и введите:
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
Вы можете прочитать больше здесь в телефонной книге Doc (последний раздел, называемый добавлением функций): Телефонный док
Я также оставляю файл config.xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.helloCordova" version="2.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
<name short="Menu">Menu Digital</name>
<description>
Description
</description>
<author email="[email protected]" href="www.facebook.com/usr"> Name </author>
<feature name="App">
<param name="android-package" value="org.apache.cordova.App" />
</feature>
<feature name="http://api.phonegap.com/1.0/device" />
<feature name="http://api.phonegap.com/1.0/media" />
<feature name="Device">
<param name="android-package" value="org.apache.cordova.device.Device" />
</feature>
<content src="index.html" />
<feature name="App">
<param name="android-package" value="org.apache.cordova.App" />
</feature>
<access origin="*" />
<preference name="useBrowserHistory" value="true" />
<preference name="exit-on-suspend" value="false" />
<preference name="fullscreen" value="true" />
<preference name="webviewbounce" value="true" />
</widget>
Ответ 11
Я получаю ту же ошибку, я проверил список плагинов в Кордове
выполнив команду "список плагинов cordova" в моем проекте проекта Android и обнаружив, что плагин "org.apache.cordova.device" отсутствует.
Я обновил его, используя "плагин Cordova add cordova-plugin-device", и ошибка исчезла.
Ответ 12
Итак, после того, как я убил себя, я обнаружил, что использовал версию кордовы 5.3.3 и версию-кордову-версию Android 5.0.0, так или иначе я не знаю, может быть, они несовместимы или может быть ошибка, поэтому я возвращаюсь к cordova android 4.1.1
cordova platform rm android
cordova platform add [email protected]
и это спасло меня.