OkHttp3 Класс не найден Исключение, но присутствует в файле dex apk - PullRequest
0 голосов
/ 24 мая 2018

Я создаю библиотеку Android, которая использует версию 3.10.0 okhttp, и она работает до сих пор.Никаких проблем с компилятором, работающие запросы в тестовом приложении и все в порядке.Как только я хочу включить встроенный файл 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
    }
}

Также я проанализировал встроенный apk в android studio и нашел именно тот класс, который мне нужен, в правильном пакете apk файла classes.dex.Поэтому у меня нет абсолютно никакой идеи о том, что может вызвать это исключение.

версии gradle - это 2.1.3 в lib и 2.2.2 в приложении.Дайте мне знать, если вам нужна дополнительная информация и спасибо заранее.

ОБНОВЛЕНИЕ: Включение OkHttp в качестве отдельной зависимости от проекта приложения работает просто отлично.Похоже, классы не копируются правильно.Как-то они существуют, но не могут быть использованы / найдены (имеет ли это смысл?).

1 Ответ

0 голосов
/ 24 мая 2018

Попробуйте повторно включить proguard и добавьте эти правила в proguard-rules.pro

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

Скажите, получите ли вы еще ClassNotFoundException

...