Gradle 在clean generate版本上找不到符号
我正在创建一个外部模块,或者应该说是一个现有移动项目应用程序库,因为我无法调整其内部(代码、配置等) 这个库的唯一用途就是执行API调用(即在服务器和客户端项目(app)之间接受和返回数据),它在开发中工作得非常好,但是当我试图以这种方式构建库时Gradle 在clean generate版本上找不到符号,gradle,gson,proguard,retrofit2,android-proguard,Gradle,Gson,Proguard,Retrofit2,Android Proguard,我正在创建一个外部模块,或者应该说是一个现有移动项目应用程序库,因为我无法调整其内部(代码、配置等) 这个库的唯一用途就是执行API调用(即在服务器和客户端项目(app)之间接受和返回数据),它在开发中工作得非常好,但是当我试图以这种方式构建库时 gradlew clean build generateRelease --stacktrace 我在stacktrace上有这样的错误 error: cannot find symbol @SerializedName("FirstName")
gradlew clean build generateRelease --stacktrace
我在stacktrace上有这样的错误
error: cannot find symbol
@SerializedName("FirstName")
^
我发现改造确实有好处
minifyEnabled true
然后我学习了一些有关proguard规则的知识
,使用来自不同来源和不同测试的这些线
-keep class com.google.code.gson.** { *; }
-keep class com.google.code.gson.annotations** { *; }
-keep class retrofit2.** { *; }
-keepclassmembernames interface * {
@retrofit.http.* <methods>;
}
-keep class retrofit2.** { *; }
-keepclassmembernames interface * {
@retrofit2.http.* <methods>;
}
-keep class sun.misc.Unsafe { *; }
-keep class com.google.code.gson.stream.** { *; }
-keepattributes Signature
-keepattributes *Annotation*
对我来说,在将以下内容添加到proguard文件后,您的项目已成功构建,并启用了缩小功能:
-dontwarn okio.**
-dontwarn retrofit2.Platform$Java8
是的,我试着在bintary中上传它,并将其作为二进制文件使用,它工作得非常好,感谢您的回答和proguard所需的代码,它真的消除了我的疑虑。
-dontwarn okio.**
-dontwarn retrofit2.Platform$Java8