通过生成签名应用

时间:2016-05-24 17:07:32

标签: android android-emulator signed android-proguard

我创建了一个应用程序,它可以在模拟器上运行。它适用于设备上的调试apk,但是当我使用生成签名应用程序构建它时它不起作用? 有什么问题以及如何在签名状态下在设备上调试它?

3 个答案:

答案 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。**。 有什么问题?