生成签名的 apk 不起作用,apk 是未签名的
generate signed apk is not working, apk is unsigned
我曾经从 Android Studio 生成一个签名的 apk,在我将 Android Studio 更新为 3.3
之前一切都运行良好。它生成一个 apk,但在我尝试安装它之后,它说:App Not Installed!
我的试用者是:
- 点击
build
- 生成签名 Apk
- 选择
APK
并点击下一步
- 插入密钥存储路径、密钥存储密码、密钥别名、密钥密码
- 点击下一步
- 选择版本变体
- 点击完成
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 个步骤解决了。但首先确保备份整个项目。
- 在 Android Studio 中转到文件 > 项目结构并取消勾选 "use embedded JDK" 然后单击确定
- 转到计算机设置(系统设置)(win + 暂停键)然后转到高级系统设置>环境变量。如果 JAVA_HOME 不存在然后添加它并设置路径到您安装的 JDK.
由于我找不到直接的方法来修改我的项目中的 jdk 路径,该路径以某种方式升级到 android studio 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 的回答)。
我曾经从 Android Studio 生成一个签名的 apk,在我将 Android Studio 更新为 3.3
之前一切都运行良好。它生成一个 apk,但在我尝试安装它之后,它说:App Not Installed!
我的试用者是:
- 点击
build
- 生成签名 Apk
- 选择
APK
并点击下一步 - 插入密钥存储路径、密钥存储密码、密钥别名、密钥密码
- 点击下一步
- 选择版本变体
- 点击完成
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 个步骤解决了。但首先确保备份整个项目。
- 在 Android Studio 中转到文件 > 项目结构并取消勾选 "use embedded JDK" 然后单击确定
- 转到计算机设置(系统设置)(win + 暂停键)然后转到高级系统设置>环境变量。如果 JAVA_HOME 不存在然后添加它并设置路径到您安装的 JDK.
由于我找不到直接的方法来修改我的项目中的 jdk 路径,该路径以某种方式升级到 android studio 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 的回答)。