Подтвердить что ты не робот

Ошибка инициализации Кордовы: класс не найден

Я следил за учебником 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>

Любые советы? Спасибо!

4b9b3361

Ответ 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] 

и это спасло меня.