android - 生成签名包失败,但生成常规包成功 Android Studio
问题描述
我有一个 React Native (0.59.10) 项目,我想开始使用新的Google App Signing程序进行较小的构建、下载等。为了加入这个程序,我需要从 Android Studio 上传导出的应用程序签名密钥:
从 Android Studio 导出您的密钥。从 Build 菜单中,选择 Generate Signed Bundle/APK。选择捆绑选项,然后按下一步。选择导出加密密钥,然后按下一步。
但是,当我完成此过程时,它在构建过程中失败并出现以下错误:
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':app:preReleaseBuild'.
> Could not resolve all dependencies for configuration ':app:releaseRuntimeClasspath'.
> java.util.ConcurrentModificationException (no error message)
奇怪的是,如果我只是选择捆绑应用程序(不签名),它可以毫无问题地工作。我还可以构建签名的 APK 并将其上传到 Play 商店
./gradlew assembleRelease
.
这是我的项目 gradle 文件:
ext {
buildToolsVersion = "28.0.3"
minSdkVersion = 19
compileSdkVersion = 28
targetSdkVersion = 28
supportLibVersion = "28.0.0"
playServicesVersion = "11.0.2"
}
buildscript {
repositories {
google()
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
google()
}
dependencies {
classpath('com.android.tools.build:gradle:3.4.2')
classpath("com.google.gms:google-services:4.0.1")
classpath("com.jaredsburrows:gradle-license-plugin:0.8.41")
classpath("embrace-io:embrace-swazzler:3.1.6")
}
}
allprojects {
repositories {
mavenLocal()
google()
jcenter()
maven {
url "$rootDir/../node_modules/react-native/android"
}
maven {
url 'https://maven.google.com/'
name 'Google'
}
maven {
url "$rootDir/../node_modules/react-native/android"
}
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.google.android.gms') {
details.useVersion '12.0.1'
}
if (requested.group == 'com.google.firebase') {
details.useVersion '12.0.1'
}
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion "${rootProject.ext.supportLibVersion}"
}
}
}
}
}
}
subprojects {
afterEvaluate {project ->
if (project.hasProperty("android")) {
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
}
}
}
}
我尝试过的事情
更新/重新安装 Android 支持 SDK
更新/重新安装 Google 支持 SDK
删除所有软件包并使用 Yarn 重新安装
升级 Gradle 版本
更新单个 npm 包
清理/重建/无效并重新启动 Android Studio
任何帮助或替代解决方案将不胜感激,谢谢!
解决方案
由于您已经成功创建了一个签名的发布 APK,我假设您已经完成了所有的密钥库和签名设置。
我为 Google App Signing 所做的是使用第二个选项(从 Java 密钥库导出和上传密钥)而不是第一个选项。只需下载 PEPK 工具并按照 Play 商店控制台提供的说明进行操作(他们会发出命令来创建您需要上传的文件)。
用于创建捆绑包而不是 APK;从 android 文件夹中使用命令
./gradlew bundleRelease
创建的包可以在
android/app/build/outputs/bundle/release/app.aab
这是我上传到 Google Play 的捆绑文件
推荐阅读
- kubernetes - 如何在远程浏览器而不是 localhost 机器中打开 Jaeger UI(在 Istio 中运行)
- python - 使用随机梯度下降的简单逻辑回归的 numpy 和 tensorflow 实现之间的区别
- php - mysqli_fetch_array() 期望参数 1 为 mysqli_result - 需要 helpsssss
- laravel - Laravel Eloquent 获取仅属于属于 shop 的用户的日志
- output - Azure 流分析:SQL 输出不起作用
- c - 如何将结构指向特定地址
- c++ - 为什么我将矢量保存到文件然后再次读取它的方法不起作用?
- c - 在内存分配过程中,“void*”指针声明和“void”关键字有什么关系?
- python - Docker 和 pip install:避免在已经安装了一些包的情况下安装所有包
- python - 使用两列作为变量的从长到宽的数据框