没有在路径上找到类:Android库上的DexPathList

时间:2016-05-11 17:18:22

标签: android retrofit retrofit2 aar

我正在使用Android库来模拟我的应用上的一些工作,并且我使用改造来使用一些Web API。

当我在同一个Android Studio项目中的示例应用程序(编译库模块)中编译和使用它时,一切正常,但是当我使用工件中的库时,我收到了错误Didn't find class on Path....

我的gradle.build文件包含此

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.squareup.retrofit2:retrofit:2.0.2'
    compile 'com.squareup.retrofit2:converter-gson:2.0.2'
    compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'

    testCompile 'junit:junit:4.12'
    testCompile "org.mockito:mockito-core:1.+"
    testCompile "org.hamcrest:hamcrest-core:1.3"
    testCompile "org.hamcrest:hamcrest-library:1.3"
    testCompile 'org.robolectric:robolectric:3.0'
}

我已经尝试过改造和改造2但我的应用程序实施库仍然遇到了同样的崩溃

Caused by: java.lang.ClassNotFoundException: Didn't find class "okhttp3.logging.HttpLoggingInterceptor" on path: DexPathList[[dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-support-annotations-23.3.0_471cb7629dd1bd2eaf19897f0bfa2e292d59a1a2-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-slice_9-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-slice_8-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-slice_7-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-slice_6-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-slice_5-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-slice_4-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-slice_3-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-slice_2-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-slice_1-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-slice_0-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-mx.segundamano.android-payments-library-0.1-SNAPSHOT_afd67b66a26310987e26f412f53082c415795025-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-internal_impl-23.3.0_ffb5ab0b136af54fef26d794f3208310ca6ef941-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-com.android.support-support-vector-drawable-23.3.0_2834a08897c09d9f4cf6a603048125bd86044324-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-com.android.support-support-v4-23.3.0_0fe06b17a4b2ae866e5066f3ea5bc8d596bd609e-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-com.android.support-multidex-1.0.1_9e5a739896463403b4d643ff254bf74dcc98371f-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-com.android.support-appcompat-v7-23.3.0_eba794855dfef17238864c6651afded84f82cf47-classes.dex", dex file "/data/data/mx.segundamano.paymentsdemo/files/instant-run/dex/slice-com.android.support-animated-vector-drawable-23.3.0_41e987bda5b0c3ecdbb65ba4dfa7c24496152077-classes.dex"],nativeLibraryDirectories=[/data/app/mx.segundamano.paymentsdemo-1/lib/arm64, /vendor/lib64, /system/lib64]]

05-11 11:40:03.737 4279 4279 E AndroidRuntime:at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.j

4 个答案:

答案 0 :(得分:3)

我认为这是一个简单的android工作室问题,重新安排导入以正确的顺序,以防万一,然后清理并构建你的项目。

这解决了我的问题

答案 1 :(得分:0)

这就是我解决问题的方法!

我的问题不在应用程序中,它在我的库中,我在gradle文件中设置了错误的发布任务。这就是你应该如何为Bintray做的。

task generateSourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier 'sources'
}

artifacts {
    archives generateSourcesJar
}

bintray {
    ...
    configurations = ['archives']
}

检查您的工件框架如何向库中添加依赖项。

答案 2 :(得分:0)

今天,我也面临着同样的问题。当我阅读了Github提供的文档时,由于某些更改,我错了头,您将遇到此错误。如果您使用的是改进版本 2.7.0 ,则可能会遇到此错误(就我而言,我也使用的是改进版本。因此,为解决此问题,我执行了以下步骤:

  1. 我在android项目中添加了Java版本8支持启用 添加Java版本8支持。在Android中打开项目级别的Gradle文件 在下面的代码中添加括号。

    android {
    
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    }
    
  2. 并在同一gradle文件中添加以下提到的依赖项

    implementation "com.squareup.okhttp3:okhttp:3.13.1"
    

下面的链接中简要提及了为什么要进行提及的更改

Clik to find more details of additional informatio

希望这会有所帮助,并节省一些时间。

答案 3 :(得分:-1)

尝试一下

compileOptions{
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    
    }