OkHttp3类未找到异常但存在于apk的dex文件中

时间:2018-05-24 13:40:02

标签: android gradle proguard okhttp3 dex

我正在构建一个使用okhttp版本3.10.0的android库,它到目前为止工作。没有编译器问题,测试应用程序中的功能请求,一切都很好。只要我想在另一个应用程序中包含构建的aar文件,我就会得到ClassNotFoundException

Caused by: java.lang.ClassNotFoundException: Didn't find class "okhttp3.OkHttpClient" on path: DexPathList[...]

我已经尝试过在网络上(在图书馆项目和应用程序中)可以找到的任何程序规则的所有可能组合,甚至禁用了proguard,以确保它不是一些混淆或优化问题。

buildTypes {
    release {
        minifyEnabled false
        useProguard false
    }
    debug {
        minifyEnabled false
        useProguard false
    }
}

我还在android studio中分析了内置的apk,并在apk的classes.dex文件的正确包中找到了我需要的类。所以我完全不知道会导致这种异常的原因。

gradle版本在lib中为2.1.3,在app中为2.2.2。如果您需要更多信息并提前致谢,请告诉我。

更新: 将OkHttp作为单独的依赖项包含在app项目中工作得很好。看起来这些类没有被正确复制。它们以某种方式存在但不能被使用/找到(这有意义吗?)。

1 个答案:

答案 0 :(得分:0)

尝试重新启用proguard并将此规则添加到 proguard-rules.pro

-keep class okhttp3.** { *; }
-dontwarn okhttp3.**

告诉我是否需要另一个ClassNotFoundException