无法添加插件org.apache.cordova.geolocation.GeoBroker

时间:2013-09-14 14:04:45

标签: android cordova geolocation

我在使用PhoneGap 3.0时遇到了一些问题 在PhoneGap 2.9上,一切都正常工作

现在我升级到3.0并创建了一个新的PhoneGap项目。

$> phonegap create new_project

添加到config.xml:

<feature name="http://api.phonegap.com/1.0/geolocation"/>

对于index.html,我使用了http://docs.phonegap.com/en/edge/cordova_geolocation_geolocation.md.html#geolocation.getCurrentPosition_full_example

中的完整示例

然后

$> phonegap build android

我将项目导入Eclipse并检查以下内容: AndroidManifest.xml有

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

xml / config.xml有

<feature name="Geolocation">
    <param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" />
</feature>

我也用过这个cmd:

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

并创建了包src /

org.apache.cordova.geolocation

现在我运行我的应用程序。 我收到了以下错误:

I/System.out(15155): Error adding plugin org.apache.cordova.geolocation.GeoBroker.
D/PluginManager(15155): exec() call to unknown plugin: Geolocation

错误跟踪:

09-14 18:07:50.185: W/System.err(28211): java.lang.ClassNotFoundException: org.apache.cordova.geolocation.GeoBroker
09-14 18:07:50.195: W/System.err(28211):    at java.lang.Class.classForName(Native Method)
09-14 18:07:50.195: W/System.err(28211):    at java.lang.Class.forName(Class.java:217)
09-14 18:07:50.195: W/System.err(28211):    at java.lang.Class.forName(Class.java:172)
09-14 18:07:50.195: W/System.err(28211):    at org.apache.cordova.PluginEntry.getClassByName(PluginEntry.java:117)
09-14 18:07:50.195: W/System.err(28211):    at org.apache.cordova.PluginEntry.createPlugin(PluginEntry.java:93)
09-14 18:07:50.195: W/System.err(28211):    at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:267)
09-14 18:07:50.205: W/System.err(28211):    at org.apache.cordova.PluginManager.execHelper(PluginManager.java:221)
09-14 18:07:50.205: W/System.err(28211):    at org.apache.cordova.PluginManager.exec(PluginManager.java:216)
09-14 18:07:50.205: W/System.err(28211):    at org.apache.cordova.ExposedJsApi.exec(ExposedJsApi.java:53)
09-14 18:07:50.205: W/System.err(28211):    at android.webkit.JWebCoreJavaBridge.sharedTimerFired(Native Method)
09-14 18:07:50.205: W/System.err(28211):    at android.webkit.JWebCoreJavaBridge.sharedTimerFired(Native Method)
09-14 18:07:50.205: W/System.err(28211):    at android.webkit.JWebCoreJavaBridge.fireSharedTimer(JWebCoreJavaBridge.java:107)
09-14 18:07:50.215: W/System.err(28211):    at android.webkit.JWebCoreJavaBridge.handleMessage(JWebCoreJavaBridge.java:136)
09-14 18:07:50.215: W/System.err(28211):    at android.os.Handler.dispatchMessage(Handler.java:99)
09-14 18:07:50.215: W/System.err(28211):    at android.os.Looper.loop(Looper.java:154)
09-14 18:07:50.215: W/System.err(28211):    at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:780)
09-14 18:07:50.215: W/System.err(28211):    at java.lang.Thread.run(Thread.java:864)
09-14 18:07:50.225: W/System.err(28211): Caused by: java.lang.NoClassDefFoundError: org/apache/cordova/geolocation/GeoBroker
09-14 18:07:50.225: W/System.err(28211):    ... 17 more
09-14 18:07:50.225: W/System.err(28211): Caused by: java.lang.ClassNotFoundException: org.apache.cordova.geolocation.GeoBroker
09-14 18:07:50.225: W/System.err(28211):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
09-14 18:07:50.225: W/System.err(28211):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
09-14 18:07:50.225: W/System.err(28211):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
09-14 18:07:50.235: W/System.err(28211):    ... 17 more

和Javascript函数onError() 提醒代码:null&amp;消息:

有什么建议吗?

先谢谢你

1 个答案:

答案 0 :(得分:1)

我认为这很奇怪,但它是通过遵循this link的步骤解决的。

您需要从here下载Cordova Android。 然后运行这些命令来构建cordova-dev.jar:

android update project -p . -t android-17
ant jar

这将创建cordova-dev.jar。或者,您可以从here下载jar。

cordova-dev.jar复制到eclipse中Android项目中的libs文件夹,并将其添加到项目类路径中。     现在所有的编译错误都将得到解决,项目将成功编译。