Android“[ERROR]初始化Cordova时出错:未找到类”

时间:2014-07-29 08:01:32

标签: android cordova

我正在使用phonegap-2.9.0

我从android / example / res /复制了xml文件夹并将其粘贴到/ res

我仍然在模拟器屏幕中收到警告

“[ERROR] Error initializing Cordova: Class not found”

参见截图

emulator

修改:

我的index.html代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<link rel="stylesheet" href="css/jquery.mobile-1.3.1.min.css">
<script src="cordova.js"></script>
<script src="js/jquery.js"></script>
<script src="js/index.js"></script>
   <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
    }

    // onSuccess: Get a snapshot of the current acceleration
    //
    function onSuccess(acceleration) {
        alert('Acceleration X: ' + acceleration.x + '\n' +
              'Acceleration Y: ' + acceleration.y + '\n' +
              'Acceleration Z: ' + acceleration.z + '\n' +
              'Timestamp: '      + acceleration.timestamp + '\n');
    }

    // onError: Failed to get the acceleration
    //
    function onError() {
        alert('onError!');
    }

    </script>




</head>
<body >
<center>
  <img src="img/full_logo.png">
</center>
<div style="width:100%;text-align:center">
  <input type=button value="Today" onClick="getdata('today');">
</div>
<br/>
</body>
</html>

请检查我的HTML代码。

4 个答案:

答案 0 :(得分:3)

我认为您没有在项目中添加config.xml文件。这是您应该做的事情。
1.在项目的res目录中创建一个新文件夹名称“xml” 2.转到Phonegap文件夹的lib / android / framework / res / xml目录,然后将config.xml文件复制到项目的xml文件夹中。
我希望这会为你做的

答案 1 :(得分:1)

如果您使用来自不同计算机的phonegap CLI,例如MacOS和Windows,您可能会看到类似的错误。您需要在当前计算机中删除并重新安装必要的插件。例如,我的Windows 8机器中出现以下错误。

11-06 06:05:52.410: W/System.err(989): java.lang.ClassNotFoundException: org.apache.cordova.device.Device
11-06 06:05:52.420: W/System.err(989):  at java.lang.Class.classForName(Native Method)
11-06 06:05:52.430: W/System.err(989):  at java.lang.Class.forName(Class.java:251)
11-06 06:05:52.430: W/System.err(989):  at java.lang.Class.forName(Class.java:216)
11-06 06:05:52.430: W/System.err(989):  at org.apache.cordova.PluginEntry.getClassByName(PluginEntry.java:117)
11-06 06:05:52.430: W/System.err(989):  at org.apache.cordova.PluginEntry.createPlugin(PluginEntry.java:93)
11-06 06:05:52.440: W/System.err(989):  at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:278)
11-06 06:05:52.440: W/System.err(989):  at org.apache.cordova.PluginManager.execHelper(PluginManager.java:232)
11-06 06:05:52.440: W/System.err(989):  at org.apache.cordova.PluginManager.exec(PluginManager.java:227)
11-06 06:05:52.440: W/System.err(989):  at org.apache.cordova.ExposedJsApi.exec(ExposedJsApi.java:53)
11-06 06:05:52.440: W/System.err(989):  at com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)

使用以下命令修复此案例的错误。

 phonegap local plugin remove org.apache.cordova.device
 phonegap local plugin add org.apache.cordova.device

这些命令仅在文件plugins \ org.apache.cordova.device.fetch.json后更改。

@@ -1,1 +1,1 @@
-{"source":{"type":"local","path":"/var/folders/v4/gn4xwpg91cgcmjc9psw86y7m0000gp/T/org.apache.cordova.device/package"}}
\ No newline at end of file
+{"source":{"type":"local","path":"C:\\Users\\ATILLA~1.OZG\\AppData\\Local\\Temp\\org.apache.cordova.device\\package"}}
\ No newline at end of file

在我的情况下,这个错误消失了。

答案 2 :(得分:0)

我有这个问题;甚至在显示应用程序工作的错误后,包括大多数插件。但插件&#34; org.apache.cordova.device&#34;没有工作,所以我把它从项目中删除,然后初始化Cordova&#39;错误消失了。 所以插件不兼容或有问题,但还不知道到底是什么。 (使用Cordova 3.5与Android)

答案 3 :(得分:0)

问题在于PluginManager类。替换以下代码( phonegap v2.9.1

/**
 * Load plugins from res/xml/config.xml
 */
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());
    ........
}

您可以在此包中找到插件管理器类

  

org.apache.cordova.api.PluginManager