該專案在沒有啟用 proguard 的情況下運行良好,啟用它時問題就來了,我正在使用 Moshi 轉換器和 Coroutines 的改造來獲取資料串列,以及用于 DI 的 Hilt,我添加了所有規則并保留了所有模型
這是錯誤:
無法計算函式的呼叫者:com 中定義的公共建構式 MovieListEntity(movie_data: kotlin.collections.List<com..domain.entities.MovieData>) 。. .domain.entities.MovieListEntity[c@dad1eb0] (成員 = null)
這些是提到的類
data class MovieListEntity(
@field:Json(name = "movie_data")
val movie_data: List<MovieData>
)
data class MovieData(
@field:Json(name = "movie_id")
val movie_id: Int,
@field:Json(name = "sub_title")
val sub_title: String,
@field:Json(name = "title")
val title: String
)
注意:我也嘗試過沒有注釋,但沒有幫助
這些是proguard規則:
-keep class com.***.***.domain.entitie.** { *; }
-keep class com.***.***.domain.entities.*
-keep class com.***.***.domain.entities.MovieListEntity
-keep class com.***.***.domain.entities.MovieData
-keep class com.***.***.DataBinderMapperImpl { *; }
-keep class com.***.***.DataBinderMapperImpl { *; }
-keep class com.***.*****{
public ** component1();
<fields>;
}
加上其他改造規則,OkHttp,hilt .. 等。
我該如何解決這個錯誤?
uj5u.com熱心網友回復:
通過添加這些規則解決
-keepclassmembers class kotlin.Metadata {
public <methods>;
}
-keepclassmembers class * {
@com.squareup.moshi.FromJson <methods>;
@com.squareup.moshi.ToJson <methods>;
}
-keepnames @kotlin.Metadata class com.******.domain.entities.**
-keep class com.******.domain.entities.** { *; }
-keepclassmembers class com.*****.domain.entities.** { *; }
問題出在Moshi 圖書館,檢查一下
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/492333.html
下一篇:角色在不應該的時候不斷下降
