生成签名包失败,但生成常规包成功

时间:2019-07-11 22:26:56

标签: android android-studio react-native

我有一个React Native(0.59.10)项目,我想开始使用新的Google App Signing程序进行较小的构建,下载等。要注册该程序,我需要上传导出的应用签名密钥表单Android Studio:

  

从Android Studio导出密钥。从“生成”菜单中,选择   生成签名包/ 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 Support SDK

  • 删除所有软件包并使用Yarn重新安装

  • 升级Gradle版本

  • 更新单个npm软件包

  • 清理/重建/失效并重启Android Studio

非常感谢任何帮助或替代解决方案,谢谢!

1 个答案:

答案 0 :(得分:1)

既然您已经成功创建了一个签名发行版APK,那么我想您已经完成了所有密钥库和签名设置。

我为Google App签名所做的是使用第二个选项(从Java密钥库导出和上载密钥),而不是第一个选项。只需下载PEPK工具,然后按照Play商店控制台提供的说明进行操作(他们会提供创建您要上传的文件的命令)。

用于创建包而不是APK;从android文件夹内部使用命令

./gradlew bundleRelease

创建的捆绑包可以在

中找到
  

android / app / build / outputs / bundle / release / app.aab

这是我上传到Google Play的捆绑文件