Когда я добавляю библиотеку Retrofit 2.4.0 в проект android
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
и устанавливаю minifyEnabled {true}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
, а затем добавьте эти правила в proguard-rules.pro
-keep class com.squareup.** { *; }
-keep interface com.squareup.** { *; }
-keep class retrofit2.** { *; }
-keep interface retrofit2.** { *;}
-keep interface com.squareup.** { *; }-keepclasseswithmembers class * {
@retrofit2.http.* <methods>;
}-dontwarn rx.**
-dontwarn retrofit2.**
-dontwarn okhttp3.**
-dontwarn okio.**
Наконец, построенный и сгенерированный подписанный apk успешно, но проблема заключается в том, чтобы запустить (release apk) & GT; Запросы на доработку не отправляются и не возвращаются {null}. Потребовалось решение!
возможно, из-за того, что в другой библиотеке работает белая модификация, например, ваш загрузчик или синтаксический анализатор.
важное уведомление:
добавить правило, чтобы ваши классы моделей и темы работали с белым парсером: / p>
, если вы используете okhttp или Okhttp3 white retrofit, добавленные ниже правил
Примечание: и проверьте также правила профайлов парсера.
БИБЛИОТЕКА: OkHttp
okhttp3
Правила Proguard работают для Retrofit, но они также запутывают классы моделей, которые вы используете для сериализации / десериализации данных. Их имена важны, так как Retrofit / Gson соответствует им для сериализации / десериализации. Proguard превращает их в тарабарщину, например
a
иb
, поэтому Retrofit / Gson не может их понять.В зависимости от настройки пакета вам нужно добавить следующее например, упомянутый амин махмоди.
-keep class your.package.name.models.** { *; }