生成签名的 apk 不起作用,apk 是未签名的

generate signed apk is not working, apk is unsigned

我曾经从 Android Studio 生成一个签名的 apk,在我将 Android Studio 更新为 3.3 之前一切都运行良好。它生成一个 apk,但在我尝试安装它之后,它说:App Not Installed!

我的试用者是:

  1. 点击build
  2. 生成签名 Apk
  3. 选择APK并点击下一步
  4. 插入密钥存储路径、密钥存储密码、密钥别名、密钥密码
  5. 点击下一步
  6. 选择版本变体
  7. 点击完成

Apk 已生成但未签名!有什么问题吗?

这是我的应用程序build.gradle

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}


android {
    useLibrary 'org.apache.http.legacy'
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.twobreathe.soft2breathe"
        minSdkVersion 23
        targetSdkVersion 27
        versionCode 9
        versionName "1.1"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            cmake {
                cppFlags ""
            }
        }
        vectorDrawables {
            useSupportLibrary true
        }
        resConfigs "en", "ja"
    }
    signingConfigs {
        release {
            keyAlias "[my key alias]"
            keyPassword "[my key password]"
            storeFile file("[path to the keystore file]")
            storePassword "[my store password]"
        }
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            shrinkResources true
            pseudoLocalesEnabled false
        }

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


    }
    externalNativeBuild {
        cmake {
            path "src/main/cpp/fluidsynth/android/CMakeLists.txt"
        }
    }
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
    dataBinding {
        enabled true
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    buildToolsVersion '28.0.3'
    productFlavors {
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.github.parse-community.Parse-SDK-Android:parse:1.18.4'
    implementation 'com.jjoe64:graphview:4.2.2'
    implementation 'io.reactivex.rxjava2:rxjava:2.2.0'
    implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
    testImplementation 'junit:junit:4.12'
    implementation 'com.orhanobut:hawk:2.0.1'
    implementation 'xyz.sahildave:arclayout:1.0.0'
    implementation 'com.mikhaellopez:circularprogressbar:2.0.0'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    implementation 'com.github.GrenderG:Toasty:1.3.0'
    implementation 'com.kyleduo.switchbutton:library:2.0.0'
    implementation 'com.github.franmontiel:LocaleChanger:0.9.2'
    implementation 'cn.aigestudio.wheelpicker:WheelPicker:1.1.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.8'
}

仔细检查最后一个对话框中的两个值,标记为 "Signature Versions"。 欲了解更多信息,请查看以下 link: https://developer.android.com/about/versions/nougat/android-7.0#apk_signature_v2

无论如何,这个问题似乎重复如下: android studio: release apk is not signed

朋友 当您构建签名的 apk 时 现在在 android studio 3.3 中,您将有 2 个选项来构建签名的 apk。 1. Android 应用程序包 2.APK

我会建议使用选项 2

select 选项 2 并单击“下一步”按钮现在工作室要求您提供密码详细信息 现在填写所有详细信息和 select 记住功能的密码复选框,现在下一步。 现在工作室再次要求调试和发布构建确认 现在在这里 select 释放 select 底部的 2 个复选框然后继续

希望您签名的 apk 能够生成。

从你的 Gradle 可以看出你还没有用它配置你的签名配置。

请检查下图:

第 1 步:

Go to your project settings > select your module (Let's say "app") > go to signing > enter proper information and keystore.jks file

第 2 步:

Go to Build Types > select Release type > assign signing config as you created on step 1. > after that your gradle will have config as there in image.

第 3 步:

Try generating signed APK.

一定会成功的!!!

快乐编码..

生成 APK 时,请确保同时检查 签名类型,否则 Fabric(和其他地方)可能无法将其识别为已签名。

此外,您可能想从您的发布配置中删除 debuggable true,因为可调试版本无法上传到 Google Play。这也可能导致问题。

更新到 3.3 后,出现了很多与签署 APK 有关的问题。有时它不签署 apk,有时它说密钥不是私有的。

好吧,我在升级到 android studio 3.3 后也遇到了这个问题,我分 3 个步骤解决了。但首先确保备份整个项目。

  1. 在 Android Studio 中转到文件 > 项目结构并取消勾选 "use embedded JDK" 然后单击确定
  2. 转到计算机设置(系统设置)(win + 暂停键)然后转到高级系统设置>环境变量。如果 JAVA_HOME 不存在然后添加它并设置路径到您安装的 JDK.
    由于我找不到直接的方法来修改我的项目中的 jdk 路径,该路径以某种方式升级到 android studio 3.3 设置,我做了以下(对于最后一步)但确保你做了在此之前备份。
  3. 为了确保我引导的是项目视图,我从根目录和 "build" 中删除了“.grade”、“.idea”、"capture"、"gradle" 文件夹, "app" 中的 "release", "lib" 文件夹,"src" 保持原样。删除了 root.iml 但没有删除 app.iml 文件然后重建项目,然后创建签名包。

试了2次就成功了。老实说,我通过从备份中恢复文件来执行最后一步两次。删除这些文件夹时我搞砸了 1 次。

不完全相关,但我在寻找解决问题的方法时遇到了这个问题。 就我而言,我忘记为我的一种非调试内置类型删除 'debuggable true' 。当我生成捆绑包时,google Play 商店不会抱怨它只是说它没有签名。但是当我尝试上传 apk 时,它显示了真正的错误。

尝试使用 command-line 工具对其进行签名。我可以帮助您确定问题所在。 (https://developer.android.com/studio/build/building-cmdline).

就我而言,这是 JAVA_HOME 问题(如@Vanshaj Daga 的回答)。