2014-06-26 410 views
1

我创建了一个科尔多瓦插件这样的树插件添加库:科尔多瓦:在

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> 

当我添加插件到科尔多瓦项目中,库似乎是在好地方:

平台\机器人\库\的Lucene分析器-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

确保它采用的是Android构建路径 –

+0

一套文件包含android请建立路径吗? – Gabriel

+1

事实上,一切都很好,唯一的问题是IndexSearcher实现了java.rmi,Android没有这个包。 要解决此问题,我们必须做两件事: 1.从类“org.apache.lucene.search.Searchable”中删除“extends java.rmi.Remote”2.删除类“org.apache。 lucene.search.RemoteSearchable“ http://stackoverflow.com/questions/7821103/lucene-in-android – Gabriel

回答

1

我有同样的问题。 jar文件在正确的地方着陆。但是,由于这个新添加的jar文件没有被添加到构建路径中,所以很明显,您将在您的jar文件中找不到所有这些类的类的错误。如果您在本地项目中安装此插件,只需将此jar文件添加到您的构建路径。它会解决你的问题。但是如果你想在云平台上使用这个插件,比如phonegap build,可能会遇到麻烦。我正在寻找解决方法。

+0

您是否找到了解决方案?我遇到了同样的问题。 – dbaq

0

对于同一个问题,请看this answer。只需将您的库放在单个插件的顶级目录中即可。这个对我有用。

0

如果您需要引用存在于特定的命名空间的设备,您可以使用上一库“框架”标签

<!-- 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