问题出现在Android Studio 3.0中。
当我创建一个新项目时,一切正常,但过了一段时间后,错误
错误:org.gradle.tooling.BuildException:无法生成v1签名
开始自动出现,导致gradle失败。
当我使用--stacktrace运行它时,这是它向我显示的内容:
信息:Gradle任务[:app:assembleDebug]
错误:org.gradle.tooling.BuildException:无法生成v1签名
错误:java.io.IOException:无法生成v1签名
错误:java.security.InvalidKeyException:使用签名者“CERT”签名失败
错误:java.security.InvalidKeyException:无法使用SHA1withDSA进行签名
错误:java.security.InvalidKeyException:SHA-1摘要算法的安全强度不足以满足此密钥大小
信息:1秒内失败
5个错误0个警告
这是Gradle控制台Gist的完整要点
我正在使用Windows 10 X64和JDK 8 X64。
任何帮助解决这个问题将不胜感激!
我发现我能够通过使用以下命令行来构建一个新的密钥文件来解决这个问题,如https://developer.android.com/studio/publish/app-signing.html所描述的那样:
keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias
具体来说,我认为问题是默认情况下某些时候默认值已从RSA更改为DSA,并且工具无法正常使用大型DSA密钥。
尝试将以下内容添加到build.gradle
并再次构建它。
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}