【问题标题】:algolia NoClassDefFoundError jayway/jsonpath/Predicatealgolia NoClassDefFoundError jayway/jsonpath/Predicate
【发布时间】:2018-04-17 12:48:48
【问题描述】:

我最近在构建我的项目时在运行时遇到了一个错误(今天早上出现的一直到现在都运行良好)。错误来自我正在使用的名为 Algolia Instant Search 的库,这是错误:

java.lang.NoClassDefFoundError: Failed resolution of: 
[Lcom/jayway/jsonpath/Predicate;     
at com.algolia.instantsearch.utils.
JSONUtils.getObjectFromJSONPath(JSONUtils.java    
at
com.algolia.instantsearch.utils.
JSONUtils.getStringFromJSONPath(JSONUtils.java:    
at
com.algolia.instantsearch.ui.views.
Hits$HitsAdapter.onBindViewHolder(Hits.java:    
at
com.algolia.instantsearch.ui.views.
Hits$HitsAdapter.onBindViewHolder(Hits.java:

等等直到

04-17 12:27:05.422 20618-20618/com.sealstudios.iconnectonline 
E/AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find 
class "com.jayway.jsonpath.Predicate" on path: DexPathList[[zip file 
"/data/app/com.sealstudios.iconnectonline-1/base.apk", zip file 
"/data/app/com.sealstudios.iconnectonline-1/split_lib_dependencies_apk.apk", 
zip file "/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_0_apk.apk", 
zip file "/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_1_apk.apk", 
zip file "/data/app/com.sealstudios.iconnectonline-        
1/split_lib_slice_2_apk.apk", 
zip file "/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_3_apk.apk", 
zip file "/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_4_apk.apk", 
zip file "/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_5_apk.apk", 
zip file "/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_6_apk.apk", 
zip file "/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_7_apk.apk", 
zip file "/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_8_apk.apk", 
zip file "/data/app/com.sealstudios.iconnectonline-
1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=
[/data/app/com.sealstudios.iconnectonline-1/lib/x86, 
/data/app/com.sealstudios.iconnectonline-1/base.apk!/lib/x86, 
/data/app/com.sealstudios.iconnectonline-
1/split_lib_dependencies_apk.apk!/lib/x86, 
/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_0_apk.apk!/lib/x86, 
/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_1_apk.apk!/lib/x86, 
/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_2_apk.apk!/lib/x86, 
/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_3_apk.apk!/lib/x86, 
/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_4_apk.apk!/lib/x86, 
/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_5_apk.apk!/lib/x86, 
/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_6_apk.apk!/lib/x86, 
/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_7_apk.apk!/lib/x86, 
/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_8_apk.apk!/lib/x86, 
/data/app/com.sealstudios.iconnectonline- 
1/split_lib_slice_9_apk.apk!/lib/x86, 
/system/lib, /vendor/lib]]


at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)

我的问题基本上是,对此我能做些什么吗?回滚 gradle 版本,添加文件,如果是,如何,或者我需要通知作者并等待修复

【问题讨论】:

    标签: android json noclassdeffounderror algolia


    【解决方案1】:

    依赖管理中存在一个问题,导致从 v1.7.6 到 v1.7.23 包含的传递依赖不暴露。

    release v1.7.24 修复了错误。只需将您的依赖项更新为

    implementation "com.algolia:instantsearch-android:1.7.24"
    

    问题就会消失。

    【讨论】:

    • 我刚刚检查过,我已经在使用 1.7.15 刚刚清理同步并重建了我的项目,但没有任何乐趣
    • 任何建议
    • 你在任何地方都使用 JSONPath 的Predicate 吗?如果您依赖它,则需要将 JSONPath 添加到您的依赖项 (implementation('com.jayway.jsonpath:json-path:2.3.0')),因为 InstantSearch 不再提供它。如果没有,您在构建github.com/algolia/instantsearch-android-examples 时是否有同样的问题?
    • 我没有在我的项目中使用它,错误是说命中(即时搜索回收器视图)正在其适配器中使用它,我将尝试下载项目并在此处更新跨度>
    • 非常感谢您对此进行了测试,确实已修复
    猜你喜欢
    • 2019-03-25
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多