Home > Software engineering >  Could not compute caller for function: public constructor Error when enable proguard in Android
Could not compute caller for function: public constructor Error when enable proguard in Android

Time:06-14

The project working well without enabling proguard, the problem comes when enable it, I am using retrofit with Moshi converter and Coroutines to fetch list of data, and Hilt for DI, and I added all rules and kept all models

This is the error:

Could not compute caller for function: public constructor MovieListEntity(movie_data: kotlin.collections.List<com...domain.entities.MovieData>) defined in com...domain.entities.MovieListEntity[c@dad1eb0] (member = null)

And these are the classes mentioned

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
)

Note: I tried also without annotations, and it didn't help

These are the proguard rules:

-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>;
 }

Plus other rules for retrofit, OkHttp, hilt .. etc.

How Can I solve this error?

CodePudding user response:

Solved by adding these rules

-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.** { *; }

The problem was in Moshi library, check this

  • Related