Android Phonegap 3插件导致生成错误或插件未初始化

Android Phonegap 3插件导致生成错误或插件未初始化,android,cordova,build,phonegap-plugins,Android,Cordova,Build,Phonegap Plugins,让我从一些上下文开始。我有一个Java文件和一个.jar库,其中包含一个带有活动的Android项目、它的布局和另一个jar库。当然,我的插件也有javascript接口。换句话说,这就是我所拥有的: plugins/com.phonegap.example.activity.plugin/www/myplugin.js plugins/com.phonegap.example.activity.plugin/src/android/MyPlugin.java plugins/com.phone

让我从一些上下文开始。我有一个Java文件和一个.jar库,其中包含一个带有活动的Android项目、它的布局和另一个jar库。当然,我的插件也有javascript接口。换句话说,这就是我所拥有的:

plugins/com.phonegap.example.activity.plugin/www/myplugin.js
plugins/com.phonegap.example.activity.plugin/src/android/MyPlugin.java
plugins/com.phonegap.example.activity.plugin/src/android/libs/myJar.jar
plugins/plugin.xml
我的插件应该在MyPlugin.java文件中执行一个方法,然后启动myJar.jar文件中的活动。 此插件的plugin.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
       id="com.phonegap.example.activity.plugin"
  version="0.1.0">
<name>MyPlugin</name>
<description>Launch an Android Activity from PhoneGap 3</description>
<author>Author</author>
<license>MIT</license>
<keywords>phonegap,activity</keywords>

<js-module src="www/myplugin.js" name="MyPlugin">
        <clobbers target="window.MyPlugin" />
</js-module>

<!-- android -->
<platform name="android">
    <config-file target="res/xml/config.xml" parent="/*">
        <feature name="MyPlugin">
            <param name="android-package" value="com.phonegap.example.activity.plugin"/>
        </feature>
    </config-file>
    <config-file target="AndroidManifest.xml" parent="/*">
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <activity 
            android:name="com.phonegap.example.activity.ExampleActivity" 
            android:label="@string/app_name">
                <intent-filter>
                    <action android:name="com.phonegap.example.action.EXAMPLE" />
                </intent-filter>
        </activity>
    </config-file>
    <source-file src="src/android/MyPlugin.java" target-dir="src/com/phonegap/example/activity" />
    <source-file src="src/android/libs/myJar.jar" target-dir="libs" />
 </platform>          
</plugin>
这个com.phonegap.example.activity包是在
myJar.jar
文件中定义的,因此
MyPlugin.java
似乎找不到
myJar.jar
文件。 我认为
plugin.xml
应该在插件安装过程中正确处理jar文件。这就是如何将其添加到
plugin.xml

 <source-file src="src/android/libs/myJar.jar" target-dir="libs" />


你知道这里有什么问题吗?

多亏了道森,问题才得以解决

我运行了cordova build android-d并查看了它的输出。注意到库放错了地方(myPlugin.java找不到myJar.jar),所以我按照Dawson的建议将它们移到了正确的位置


非常感谢

我在构建自己的Android插件时经常遇到这种情况。这很可能是java文件中的编译错误。运行
cordova build android-d
,您将看到大量输出。在那里你应该可以找到编译错误的直接引用。谢谢你,道森。这确实揭示了问题所在。我用运行该命令得到的输出编辑了我的问题。请检查以确保
MyJar.jar
位于
platforms/android/lib
中,如果没有,请尝试将plugin.xml行更改为
,或者手动将文件放入正确的文件夹中,然后重试。在plugin.xml文件中引用插件中的文件时,假设系统知道在
src/PLATFORM
中查找您正在引用的文件。因此,
src/android/lib
中的文件需要引用为
lib/file\u NAME
 <source-file src="src/android/libs/myJar.jar" target-dir="libs" />