Retrofit2 - отсутствует либо @получить URL-адрес или параметр @url - адреса должны быть
Я делаю ProGuard в моем приложении как:
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
И когда я пытаюсь сделать http-вызов с Retrofit2, я получаю исключение:
Java.яз..IllegalArgumentException: отсутствует либо @GET-параметр url-адреса или @URL-адрес.
Service
это:
interface ContentService {
@GET
fun getCMSCon(@Url url: String): Single<CMSCon>
}
Этого не происходит, когда minifyEnabled false
и shrinkResources false
Я провел исследование в интернете и в итоге изменил proguard-rules.pro
следующим образом:
# Retrofit
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-keepattributes *Annotation*
-keepattributes RuntimeVisibleAnnotations
-keepattributes RuntimeInvisibleAnnotations
-keepattributes RuntimeVisibleParameterAnnotations
-keepattributes RuntimeInvisibleParameterAnnotations
-keepattributes EnclosingMethod
-keepclasseswithmembers class * {
@retrofit2.* <methods>;
}
-keepclasseswithmembers interface * {
@retrofit2.* <methods>;
}
, но ничего не изменилось.
@Url
передается из res
и буквально, чтобы проверить, нет ли проблем с ароматами.