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

时间:2019-01-28 09:47:47

标签: android android-studio apk-signing

我曾经从Android Studio生成一个签名的APK,直到我将Android Studio更新为3.3为止,一切都运行良好。它会生成一个apk,但是在我尝试安装后,它会显示:未安装应用程序!

我的试用者是:

  1. 点击build
  2. 生成签名的APK
  3. 选择APK并单击下一步
  4. 插入密钥存储路径,密钥存储密码,密钥别名,密钥密码
  5. 点击下一步
  6. 选择发布版本
  7. 单击完成

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

This is after trying to upload to beta

这是我的应用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'
}

7 个答案:

答案 0 :(得分:2)

更新到3.3后,出现了许多与APK签名相关的问题。有时它不对apk进行签名,有时它说密钥不是私有的。

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

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

2次尝试后成功。老实说,我通过从备份还原文件完成了最后一步。删除这些文件夹时,我搞砸了1次。

答案 1 :(得分:1)

从您的Gradle中可以看到,您尚未使用它配置Signing Config。

请检查下面的图像:

enter image description here

第1步:

  

转到您的项目设置>选择您的模块(比方说“应用程序”)>转到签名>输入正确的信息和keystore.jks文件

第2步:

  

转到“构建类型”>选择“发布类型”>分配在步骤1中创建的签名配置。>之后,gradle将具有图像中的配置。

第3步:

  

尝试生成签名的APK。

这将是成功的!!!

快乐编码。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

仔细检查最后一个对话框中的两个值,并用“签名版本”标记。 有关更多信息,请检查以下链接: https://developer.android.com/about/versions/nougat/android-7.0#apk_signature_v2

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

答案 4 :(得分:0)

朋友 当你去建立签名的apk 现在在android studio 3.3中,您将有2个选项用于构建签名的apk。 1. Android应用套件 2.APK

我建议使用选项2

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

希望您签名的APK将生成。

答案 5 :(得分:0)

在生成APK时,请确保两者都已选中签名类型,否则Fabric(和其他地方)可能无法将其识别为已签名。

另外,您可能还想从发布配置中删除debuggable true,因为无法将可调试的版本上传到Google Play。很有可能这也会引起问题。

signing options

答案 6 :(得分:0)

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

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