我创建了一个应用程序,它可以在模拟器上运行。它适用于设备上的调试apk,但是当我使用生成签名应用程序构建它时它不起作用? 有什么问题以及如何在签名状态下在设备上调试它?
答案 0 :(得分:1)
在我的项目中没有运行签名的应用程序。我将minifyEnabled值从true更改为false然后问题解决了。这个坏方案。我正在寻找更好的方法。
build.gradle:
buildTypes {
release {
shrinkResources true
minifyEnabled false //true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
}
}
答案 1 :(得分:1)
我找到了问题并解决了它。 我必须保持模型形式混淆使用改造。使用下面的代码后,我的应用程序在启用minifyEnabled时正常工作:
-keep com.xxx.xxx.models。** {*; }
改造需要知道用于按值填充的类属性。
感谢每个人都试着帮助我。
答案 2 :(得分:0)
我发现progard在改造interfce方面存在问题
界面示例:
import java.util.List;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;
public interface AClient {
// For register device for specific package
@GET("/api/initiate/{packageId}")
Call<InitiateModel> GetInitiateInfo(
@Path("packageId") int packageId
);
}
我在progard文件中添加-dontwarn retrofit2。**。 有什么问题?