我已经像这棵树一样创建了一个cordova插件:
LucenePlugin
src
android
libs
lucene-analyzers-2.4.1.jar
lucene-core-2.4.1.jar
lucene-snowball-2.4.1.jar
LucenePlugin.java
www
lucene.js
plugin.xml
在plugin.xml中,我添加了像这样的.jar
<platform name="android">
<config-file target="res/xml/config.xml" parent="/*">
<feature name="org.apache.cordova.LuceneLibs">
<param name="android-package" value="org.apache.cordova.LuceneLibs"/>
</feature>
</config-file>
<source-file src="src/android/lucene-analyzers-2.4.1.jar" target-dir="libs" framework="true"/>
<source-file src="src/android/lucene-core-2.4.1.jar" target-dir="libs" framework="true"/>
<source-file src="src/android/lucene-snowball-2.4.1.jar" target-dir="libs" framework="true"/>
</platform>
当我将插件添加到cordova项目中时,libs似乎处于好处:
platforms \ android \ libs \ lucene-analyzers-2.4.1.jar等...
不幸的是,当我运行项目时,我有这个错误
W/System.err(12492): java.lang.NoClassDefFoundError:
org.apache.lucene.search.IndexSearcher
W/System.err(12492): at
org.apache.cordova.Lucene.LucenePlugin.execute(LucenePlugin.java:27)
W/System.err(12492): at
org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:65)
W/System.err(12492): at
org.apache.cordova.PluginManager.execHelper(PluginManager.java:242)
你知道我忘了吗?
由于
答案 0 :(得分:1)
我遇到了同样的问题。 jar文件落在正确的位置。但是由于这个新添加的jar文件没有添加到构建路径中,很明显,你的jar文件中的所有类都找不到类的错误。如果要在本地项目中安装此插件,只需将此jar文件添加到构建路径即可。它会解决你的问题。但是如果你想在像phonegap build这样的云平台上使用这个插件,可能会有麻烦。我正在寻找一种方法。
答案 1 :(得分:0)
查看this answer同一问题。只需将您的库放在单个插件的顶级目录中即可。它对我有用。
答案 2 :(得分:0)
如果您需要在某个命名空间引用设备上存在的库,您可以使用&#34; framework&#34;标签
<!-- Depend on latest version of GCM from play services -->
<framework src="com.google.android.gms:play-services-gcm:+" />
<!-- Depend on v21 of appcompat-v7 support library -->
<framework src="com.android.support:appcompat-v7:21+" />
<!-- Depend on library project included in plugin -->
<framework src="relative/path/FeedbackLib" custom="true" />
https://cordova.apache.org/docs/en/latest/plugin_ref/spec.html#framework