Android jar使用有效密钥库未签名,需要SHA1证书吗?

Android jar使用有效密钥库未签名,需要SHA1证书吗?,android,android-studio,cryptography,digital-signature,Android,Android Studio,Cryptography,Digital Signature,我正在尝试为我的应用程序生成已签名的APK。我正在使用androidstudio生成发布APK:build>generate-signed-APK。然后,我会得到一个弹出窗口,显示我的密钥存储、别名和密码。这个过程在过去一直有效,但我怀疑,在最近升级了工具和其他支持之后,它停止了工作。我该怎么做才能让Android Studio生成带有有效签名的已签名APK 当我使用jarsigner检查Java 1.8版本中的APK时,我得到以下消息: jar没有签名。(签名缺失或不可解析) 如果我使用jar

我正在尝试为我的应用程序生成已签名的APK。我正在使用androidstudio生成发布APK:build>generate-signed-APK。然后,我会得到一个弹出窗口,显示我的密钥存储、别名和密码。这个过程在过去一直有效,但我怀疑,在最近升级了工具和其他支持之后,它停止了工作。我该怎么做才能让Android Studio生成带有有效签名的已签名APK

当我使用jarsigner检查Java 1.8版本中的APK时,我得到以下消息:

jar没有签名。(签名缺失或不可解析)

如果我使用jarsigner对应用程序进行签名,它会安装在大多数设备上,但不会安装在运行Android 4.1的设备上。我使用的命令是:

jarsigner -verbose -keystore "...path...\perinote-release.keystore" app-release.apk perinote
此外,如果我向jarsigner选项添加:

-digestalg SHA1-带RSA的sigalg MD5

它被安卓4.1设备所接受。我在另一篇文章中发现了这些选项,表明在某种程度上,加密从SHA1更改为SHA2

这是“应用程序”的build.gradle

如何配置Android Studio以使用SHA1,使我的应用程序继续在Android 4.1设备上工作?或者我还应该做些什么


编辑:我意识到我应该切换到SHA256。但我仍然需要一种方法让我的应用程序在安卓4.1上运行。我需要生成两个版本并发布它们吗?

要获得两个签名版本,只需选中第二个生成签名APK对话框底部的V1和V2复选框


更新AS后,我没有注意到此对话框发生了更改,并立即消失。

请尝试始终使用顶级标记(添加了android和加密),并确保您的标记正确(签名应为数字签名),否则您的Q将被忽略。谢谢。这些都是很好的建议。
apply plugin: 'com.android.application'

android {
    signingConfigs {
        release {
            keyAlias 'perinote'
            storeFile file('...path.../perinote-release.keystore')
        }
    }
    compileSdkVersion 24
    buildToolsVersion "25.0.0"
    compileOptions.encoding = 'UTF-8'
    defaultConfig {
        applicationId "com.perinote.camera"
        minSdkVersion 15
        targetSdkVersion 24

        renderscriptTargetApi 20
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.release
        }
    }
    lintOptions {
        checkReleaseBuilds false
    }
}

dependencies {
    compile 'com.android.support:support-v4:24.0.0'
    testCompile 'junit:junit:4.12'
}