IT TIP

Cordova 초기화 오류 : 클래스를 찾을 수 없음

itqueen 2021. 1. 5. 20:46
반응형

Cordova 초기화 오류 : 클래스를 찾을 수 없음


공식 Phonegap.com 사이트에서 Phonegap 튜토리얼을 따랐습니다 (Android 시작하기).

모든 단계를 따라 프로젝트를 만들었습니다.

  1. 활동을 생성하고 "DroidGap"에서 확장하고 onCreate ()에서 loadURL 메소드를 추가했습니다.
  2. 각 폴더에 cordova-2.0.0.js 및 cordova-2.0.0.jar을 추가했습니다.
  3. 빌드 경로에 jar 파일을 추가했습니다.
  4. html 태그에서 js 파일을로드했습니다.
  5. AndroidMainfeast.xml에서 권한 추가
  6. "configs.xml"이 포함 된 xml 폴더를 복사했습니다.

이제 나는 문제가 어디인지 이해하지 못합니다. 스크린 샷과 같이 아래 오류가 표시됩니다.여기에 이미지 설명 입력

다음은 내 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>

어떤 충고? 감사!


그것은이다 config.xml없습니다 configs.xml.

로그에 따르면 앱 res/xml디렉토리 에서이 파일이 누락 된 것으로 보입니다 . 배포의 일부로 포함되어 lib/android/res/xml/config.xml있으므로 해당 파일을 res/xml디렉토리에 복사 하면 모든 설정이 완료됩니다.


것처럼 이 질문에 대한 그의 대답에 aharris88 , 내가 가지고 [CORDOVA] Error initilizing Cordova: Class not found사용할 때 오류 메시지가 코르도바 3.1.0 폰갭 3.0에서 마이그레이션 한 후 내 안드로이드 dev에 전화.

디렉토리 config.xml파일을 조작하는 /platforms/android/res/xml것은 도움이되지 않았습니다. 위에서 언급 한 Stackoverflow 답변에 따라 Android 플랫폼 지원을 다시 설치하여 "다시 시작"하려고했습니다.

cordova platform rm android
cordova platform add android

이 단계 후에 다시 작동했고 cordova build android && cordova run android더 이상 문제없이 할 수있었습니다 .


내가 삭제 한 플러그인 때문에이 오류가 발생했습니다. 나는 추가했다

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

config.xml 파일에 다시 추가하고 수정했습니다.


다음 플러그인이 없습니다.

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

사이에 넣어야합니다 <plugins></plugins>. 처럼

<plugins>
    <plugin name="Device" value="org.apache.cordova.Device"/>
</plugins>

글쎄, 내가 찾은 오류는 다음과 같습니다.

05-28 08 : 19 : 53.139 : E / PluginManager (1478) : ================================= ================================================ = 05-28 08 : 19 : 53.139 : E / PluginManager (1478) : 오류 : 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)"메소드에 대해 더 많이 읽을 수 있습니다.


나는 phonegap 3.x를 사용 하여이 문제가 있었고 문제는 phonegap이 플러그인을 올바르게 설치하지 않았거나 도중에 엉망이 된 것으로 판명되었습니다. 기본적으로 플러그인을 설치하고 플랫폼 용으로 빌드 할 때 plugins / org.apache.cordova.core.specific-plugin / www에서 javascript 파일을 가져와 platform / 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" />

So this tells you that in platforms/android/src/org/apache/cordova/networkinformation, there should be NetworkManager.java. And that file can be copied from plugins/org.apache.cordova.core.network-information/src/android/NetworkManager.java

Now all of this is supposed to happen automatically without having to touch the platforms folder. But if it messes up you can fix it by manually copying the correct files into the correct folders.


You can resolve this when using phonegap command line by doing the following:

  1. Delete merges/android, platforms/android, plugins/android.json

  2. run phonegap local build android


Had same problem with Class not found. One problem to look at is to ensure that the android.json (or ios.json) file is being updated on a build. Mine was effectively empty. Also, remove and add back the plugins as mentioned in some other posts. Finally, the thing that worked for me was to ensure that the plugins were corrected referenced in the 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>

Note the double naming of 'device.Device' and also the sub-classing of the 'camera' and 'dialogs' plugins. This just isn't properly referenced by the Phonegap documentation.


So After near to kill myself , i found that i was using cordova version 5.3.3 and cordova-android version 5.0.0, somehow i don't know may be there are not compatible or there can be a bug ,so i fall back to cordova android 4.1.1

  cordova platform rm android
  cordova platform add android@4.1.1 

and this saved me up


I ran into the same error: "Error initializing Cordova: Class not found", using cordova with visual studio 2015. But this wasn't the only error, none of my plugins seem to get trough. I've tried about EVERYTHING. From cordova platform rm/add android x1000 times, to deleting and re-adding the plugins manually, nothing seem to do the trick.

여기에 이미지 설명 입력

Then i changed my cordova-cli in the taco.json file from 5.3.3 to 5.4.0 and ran it on my device. Finally this fixed the whole issue for me. I then downgraded the cordova version back to 5.3.3 ( the 5.4.0 version is not supported by the adb bridge as of yet ). Try it out!


I'm getting the same error, I checked my Cordova plugin list

by running the command "cordova plugin list" in my Android project directory and found "org.apache.cordova.device" plugin missing.

I updated it using "Cordova plugin add cordova-plugin-device" and Error was gone.


[Solved in my case]

First, step six is wrong: it is config.xml and not configs.xml

I have the same error despite I have my config.xml in res/xml folder. It is because you have to install manually plugins for basic API functions.

Through console navigate to your project folder and type:

phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git

You can read more here in phonegap Doc (last section called add features) : Phonegap Doc

I leave you also my config.xml file

<?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="asd@gmail.com" 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>

This could happened 'cause your cordova plugin have a different path from what IONIC expect to found:

You should correct the file plugin.xml inside your plugin source folder:

<config-file target="app/src/main/res/xml/config.xml" parent="/*">

should be:

 <config-file target="res/xml/config.xml" parent="/*">

Android Studio Logcat 내에서 해당 오류를 검색하려고하면 일반적으로 다음과 같은 것을 찾을 수 있습니다.

io.ionic.starter E/chromium: [ERROR:service_manager.cc(156)] Connection InterfaceProviderSpec prevented service: content_renderer from binding interface: blink::mojom::BudgetService exposed by: content_browser
2019-02-22 13:40:06.144 30230-30258/com.android.webview:sandboxed_process0 E/chromium: [ERROR:BudgetService.cpp(167)] Unable to connect to the Mojo BudgetService.

참조 URL : https://stackoverflow.com/questions/11934974/error-initializing-cordova-class-not-found

반응형

'IT TIP' 카테고리의 다른 글

왜 벡터  (0) 2021.01.05
numpy의 반복되지 않는 난수  (0) 2021.01.05
S3 + Cloudfront CORS 구성이 정확합니까?  (0) 2021.01.05
Stream 개체에 대한 ReadAllLines?  (0) 2021.01.05
Firebase 데이터 구조 및 URL  (0) 2021.01.05