在 android studio 上签名构建时出错
error in Signed build on android studio
所以这些天我正在学习如何在 Android 上编写代码,目前我正面临一个荒谬的问题!当我将它安装在我的手机上进行测试时,我的可调试构建工作得很好,但是当我创建一个签名构建并尝试在我的手机上 运行 它时,它立即崩溃:( 我迫切需要帮助!因为我真的很新Android 如果回答这个问题的人记住我的技能水平,将不胜感激。哦顺便说一句,我正在使用 Android Studio 1.5.1
你在使用混淆器吗?如果是,并且您有 jar 文件,请确保 proguard 不会意外删除您正在使用 -keep class package.name.** {*;}
行的包
在您的应用程序中查找 build.gradle 混淆器。当您使用 minify enabled 设置为 true 时启用它。
问题的发生很可能是因为 Proguard(缩小和混淆代码的工具)正在删除所需的 class,很可能是从您正在使用的库中删除。如果您使用您正在使用的任何库更新您的问题,我可以给出更具体的答案。
在您的 /app/build.gradle
文件中(请记住 Android 有两个单独的 build.gradle
文件,您需要 app/
文件夹中的一个)您将能够看到两种不同的构建类型,"debug" 和 "release." 签名和缩小发生在 "release" 构建类型中。
您的 "release" 构建类型将如下所示:
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable false
signingConfig signingConfigs.release
}
为了告诉 Proguard 保留特定的 classes,您需要 edit/create 您的 proguard-rules.pro
文件与 build.gradle
文件位于同一目录中。
在 proguard-rules.pro
文件中,您需要添加适当的 -keep class package.name.** {*;}
行。我无法确切地告诉您这是什么,因为我不知道是哪个 library/class 导致您的应用程序崩溃。您可以在每个特定库中搜索 Google/Whosebug Proguard 问题并添加适当的 Proguard 配置。
创建 Proguard 文件后,请确保在 release
构建类型中包含此行:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
所以这些天我正在学习如何在 Android 上编写代码,目前我正面临一个荒谬的问题!当我将它安装在我的手机上进行测试时,我的可调试构建工作得很好,但是当我创建一个签名构建并尝试在我的手机上 运行 它时,它立即崩溃:( 我迫切需要帮助!因为我真的很新Android 如果回答这个问题的人记住我的技能水平,将不胜感激。哦顺便说一句,我正在使用 Android Studio 1.5.1
你在使用混淆器吗?如果是,并且您有 jar 文件,请确保 proguard 不会意外删除您正在使用 -keep class package.name.** {*;}
在您的应用程序中查找 build.gradle 混淆器。当您使用 minify enabled 设置为 true 时启用它。
问题的发生很可能是因为 Proguard(缩小和混淆代码的工具)正在删除所需的 class,很可能是从您正在使用的库中删除。如果您使用您正在使用的任何库更新您的问题,我可以给出更具体的答案。
在您的 /app/build.gradle
文件中(请记住 Android 有两个单独的 build.gradle
文件,您需要 app/
文件夹中的一个)您将能够看到两种不同的构建类型,"debug" 和 "release." 签名和缩小发生在 "release" 构建类型中。
您的 "release" 构建类型将如下所示:
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable false
signingConfig signingConfigs.release
}
为了告诉 Proguard 保留特定的 classes,您需要 edit/create 您的 proguard-rules.pro
文件与 build.gradle
文件位于同一目录中。
在 proguard-rules.pro
文件中,您需要添加适当的 -keep class package.name.** {*;}
行。我无法确切地告诉您这是什么,因为我不知道是哪个 library/class 导致您的应用程序崩溃。您可以在每个特定库中搜索 Google/Whosebug Proguard 问题并添加适当的 Proguard 配置。
创建 Proguard 文件后,请确保在 release
构建类型中包含此行:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'