android studio上签名版本中的错误

时间:2016-02-12 05:06:34

标签: java android android-studio signed

所以这些天我正在学习如何在Android上编码,此刻我正面临一个荒谬的问题!当我在手机上安装它进行测试时,我的debuggable构建工作得很好但是当我创建一个已签名的内置并尝试在我的手机上运行它时它会立即崩溃:(我拼命地需要帮助!因为我真的很新Android它会如果回答这个问题的人保持我的技能水平,我将非常感激。哦,顺便说一下,我使用的是Android Studio 1.5.1

2 个答案:

答案 0 :(得分:0)

你正在使用proguard吗?如果是,并且您有jar文件,请确保proguard不会意外地删除您正在使用的行-keep class package.name.** {*;}

在你的应用build.gradle中查找proguard。使用minify enabled set为true时启用它。

答案 1 :(得分:0)

问题很可能是因为Proguard(缩小和混淆代码的工具)正在删除一个必需的类,很可能是你正在使用的库。如果您使用您正在使用的任何库更新您的问题,我可以提供更具体的答案。

在您的/app/build.gradle文件中(请记住,Android有两个单独的build.gradle文件,您希望在app/文件夹中有一个文件),您将能够看到两个单独的版本类型,“调试”和“发布”。签名和minifcation发生在“release”构建类型中。

您的“发布”构建类型将如下所示:

release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    debuggable false
    signingConfig signingConfigs.release
}

为了告诉Proguard保留特定的课程,您需要在与proguard-rules.pro文件相同的目录中编辑/创建build.gradle文件。

proguard-rules.pro文件的内部,您需要添加相应的-keep class package.name.** {*;}行。我无法确切地告诉您这是什么,因为我不确切知道哪个库/类导致您的应用崩溃。您可以在Google / StackOverflow中搜索每个特定库的Proguard问题,并添加相应的Proguard配置。

创建Proguard文件后,请确保在release构建类型中包含此行:

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'