[ 
https://issues.apache.org/jira/browse/LUCENE-8274?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

zhangzhenan updated LUCENE-8274:
--------------------------------
    Description: 
 

I find that javaversion_1.8 can be use in android-26, so I try to replace 
lucene4.7.2 into lucene7.2.1 in my android project. but I get a AndroidRuntime

 

This is my config:

compileOptions

{ sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility 
JavaVersion.VERSION_1_8 }

 

dependencies

{ compile 'com.android.support:multidex:1.0.1' compile 
'org.apache.lucene:lucene-core:7.2.1' compile 
'org.apache.lucene:lucene-analyzers-common:7.2.1' compile 
'org.apache.lucene:lucene-analyzers-smartcn:7.2.1' compile 
'org.apache.lucene:lucene-queries:7.2.1' compile 
'org.apache.lucene:lucene-queryparser:7.2.1' }

 

it goes well when Build APK , but got a AndroidRuntime like below:

04-25 10:20:15.129 13251 13273 E AndroidRuntime: 
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/ClassValue;
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.analysis.standard.StandardAnalyzer.createComponents(StandardAnalyzer.java:103)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.analysis.AnalyzerWrapper.createComponents(AnalyzerWrapper.java:134)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.analysis.Analyzer.tokenStream(Analyzer.java:198)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.util.QueryBuilder.createFieldQuery(QueryBuilder.java:240)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParserBase.newFieldQuery(QueryParserBase.java:475)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParserBase.getFieldQuery(QueryParserBase.java:467)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.MultiFieldQueryParser.getFieldQuery(MultiFieldQueryParser.java:154)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParserBase.handleBareTokenQuery(QueryParserBase.java:830)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParser.Term(QueryParser.java:469)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:355)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:244)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParser.TopLevelQuery(QueryParser.java:215)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:109)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
com.android.globalsearch.model.index.ContactsIndexHelper.getQuery(ContactsIndexHelper.java:713)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
com.android.globalsearch.model.index.IndexHelper.initQuery(IndexHelper.java:496)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
com.android.globalsearch.model.task.search.SearchLocalTask$4.run(SearchLocalTask.java:342)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
java.lang.Thread.run(Thread.java:764)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: Caused by: 
java.lang.ClassNotFoundException: Didn't find class "java.lang.ClassValue" on 
path: DexPathList[[zip file 
"/data/app/com.android.globalsearch-1nMSgWTRPQ5vt_9Co6iFaw==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.globalsearch-1nMSgWTRPQ5vt_9Co6iFaw==/lib/arm,
 
/data/app/com.andriod.globalsearch-1nMSgWTRPQ5vt_9Co6iFaw==/base.apk!/lib/armeabi,
 /system/lib, /vendor/lib]]
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
java.lang.ClassLoader.loadClass(ClassLoader.java:379)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
java.lang.ClassLoader.loadClass(ClassLoader.java:312)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: ... 19 more

 

这个问题跟stackoverflow上的这个问题一样:

[https://stackoverflow.com/questions/47657615/lucene-android-noclassdeffounderror]

  was:
由于android-26开始支持Java8,所以我着手将android工程中的Lucene4.7.2替换成7.2.1,我指定了java8进行编译

compileOptions

{ sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility 
JavaVersion.VERSION_1_8 }

引用7.2.1

dependencies

{ compile 'com.android.support:multidex:1.0.1' compile 
'org.apache.lucene:lucene-core:7.2.1' compile 
'org.apache.lucene:lucene-analyzers-common:7.2.1' compile 
'org.apache.lucene:lucene-analyzers-smartcn:7.2.1' compile 
'org.apache.lucene:lucene-queries:7.2.1' compile 
'org.apache.lucene:lucene-queryparser:7.2.1' }

编译生成apk未出现问题,但运行时出现Didn't find class "java.lang.ClassValue"

04-25 10:20:15.129 13251 13273 E AndroidRuntime: 
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/ClassValue;
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.analysis.standard.StandardAnalyzer.createComponents(StandardAnalyzer.java:103)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.analysis.AnalyzerWrapper.createComponents(AnalyzerWrapper.java:134)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.analysis.Analyzer.tokenStream(Analyzer.java:198)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.util.QueryBuilder.createFieldQuery(QueryBuilder.java:240)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParserBase.newFieldQuery(QueryParserBase.java:475)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParserBase.getFieldQuery(QueryParserBase.java:467)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.MultiFieldQueryParser.getFieldQuery(MultiFieldQueryParser.java:154)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParserBase.handleBareTokenQuery(QueryParserBase.java:830)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParser.Term(QueryParser.java:469)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:355)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:244)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParser.TopLevelQuery(QueryParser.java:215)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:109)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
com.android.globalsearch.model.index.ContactsIndexHelper.getQuery(ContactsIndexHelper.java:713)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
com.android.globalsearch.model.index.IndexHelper.initQuery(IndexHelper.java:496)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
com.android.globalsearch.model.task.search.SearchLocalTask$4.run(SearchLocalTask.java:342)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
java.lang.Thread.run(Thread.java:764)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: Caused by: 
java.lang.ClassNotFoundException: Didn't find class "java.lang.ClassValue" on 
path: DexPathList[[zip file 
"/data/app/com.android.globalsearch-1nMSgWTRPQ5vt_9Co6iFaw==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.globalsearch-1nMSgWTRPQ5vt_9Co6iFaw==/lib/arm,
 
/data/app/com.andriod.globalsearch-1nMSgWTRPQ5vt_9Co6iFaw==/base.apk!/lib/armeabi,
 /system/lib, /vendor/lib]]
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
java.lang.ClassLoader.loadClass(ClassLoader.java:379)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
java.lang.ClassLoader.loadClass(ClassLoader.java:312)
 04-25 10:20:15.129 13251 13273 E AndroidRuntime: ... 19 more

 

这个问题跟stackoverflow上的这个问题一样:

https://stackoverflow.com/questions/47657615/lucene-android-noclassdeffounderror

        Summary: I get a AndroidRuntime about Didn't find class 
"java.lang.ClassValue"  while I use lucene 7.2,1 in android  (was: 
android上使用Lucene7.2.1出现Didn't find class "java.lang.ClassValue"问题;)

> I get a AndroidRuntime about Didn't find class "java.lang.ClassValue"  while 
> I use lucene 7.2,1 in android
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-8274
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8274
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/queryparser
>    Affects Versions: 7.2.1
>         Environment: android-26
> android studio
>  
> buildToolsVersion "28.0.0-rc1"
>  
> minSdkVersion 26
> targetSdkVersion 26
>  
> compileOptions {
>  sourceCompatibility JavaVersion.VERSION_1_8
>  targetCompatibility JavaVersion.VERSION_1_8
> }
>  
>            Reporter: zhangzhenan
>            Priority: Major
>              Labels: android8.0
>
>  
> I find that javaversion_1.8 can be use in android-26, so I try to replace 
> lucene4.7.2 into lucene7.2.1 in my android project. but I get a AndroidRuntime
>  
> This is my config:
> compileOptions
> { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility 
> JavaVersion.VERSION_1_8 }
>  
> dependencies
> { compile 'com.android.support:multidex:1.0.1' compile 
> 'org.apache.lucene:lucene-core:7.2.1' compile 
> 'org.apache.lucene:lucene-analyzers-common:7.2.1' compile 
> 'org.apache.lucene:lucene-analyzers-smartcn:7.2.1' compile 
> 'org.apache.lucene:lucene-queries:7.2.1' compile 
> 'org.apache.lucene:lucene-queryparser:7.2.1' }
>  
> it goes well when Build APK , but got a AndroidRuntime like below:
> 04-25 10:20:15.129 13251 13273 E AndroidRuntime: 
> java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/ClassValue;
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.analysis.standard.StandardAnalyzer.createComponents(StandardAnalyzer.java:103)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.analysis.AnalyzerWrapper.createComponents(AnalyzerWrapper.java:134)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.analysis.Analyzer.tokenStream(Analyzer.java:198)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.util.QueryBuilder.createFieldQuery(QueryBuilder.java:240)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.queryparser.classic.QueryParserBase.newFieldQuery(QueryParserBase.java:475)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.queryparser.classic.QueryParserBase.getFieldQuery(QueryParserBase.java:467)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.queryparser.classic.MultiFieldQueryParser.getFieldQuery(MultiFieldQueryParser.java:154)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.queryparser.classic.QueryParserBase.handleBareTokenQuery(QueryParserBase.java:830)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.queryparser.classic.QueryParser.Term(QueryParser.java:469)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:355)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:244)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.queryparser.classic.QueryParser.TopLevelQuery(QueryParser.java:215)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:109)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> com.android.globalsearch.model.index.ContactsIndexHelper.getQuery(ContactsIndexHelper.java:713)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> com.android.globalsearch.model.index.IndexHelper.initQuery(IndexHelper.java:496)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> com.android.globalsearch.model.task.search.SearchLocalTask$4.run(SearchLocalTask.java:342)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> java.lang.Thread.run(Thread.java:764)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: Caused by: 
> java.lang.ClassNotFoundException: Didn't find class "java.lang.ClassValue" on 
> path: DexPathList[[zip file 
> "/data/app/com.android.globalsearch-1nMSgWTRPQ5vt_9Co6iFaw==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.globalsearch-1nMSgWTRPQ5vt_9Co6iFaw==/lib/arm,
>  
> /data/app/com.andriod.globalsearch-1nMSgWTRPQ5vt_9Co6iFaw==/base.apk!/lib/armeabi,
>  /system/lib, /vendor/lib]]
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:379)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: at 
> java.lang.ClassLoader.loadClass(ClassLoader.java:312)
>  04-25 10:20:15.129 13251 13273 E AndroidRuntime: ... 19 more
>  
> 这个问题跟stackoverflow上的这个问题一样:
> [https://stackoverflow.com/questions/47657615/lucene-android-noclassdeffounderror]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to