我正在使用phonegap-2.9.0
我从android / example / res /复制了xml文件夹并将其粘贴到/ res
中我仍然在模拟器屏幕中收到警告
“[ERROR] Error initializing Cordova: Class not found”
参见截图
修改:
我的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代码。
答案 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