[英]Signing android apk with gradle-experimental:0.2.0
我已经成功修改了我的build.gradle以使用gradle-experimental,但是当尝试添加signedConfigs块时它失败了。 我按照http://tools.android.com/tech-docs/new-build-system/gradle-experimental的说明尽我所能,但我总是得到以下错误:
配置项目':app'时出现问题。
以下模型规则是未绑定的:model.android.signingConfigs> named(release)Mutable: - android.signingConfigs.release(com.android.build.gradle.managed.SigningConfig)
我搜索错误但找不到任何相关内容。 “以下型号规则未绑定”是什么意思?
这是我的signingConfig块看起来像,它在android块之外并修改为使用=就像使用gradle-experimental时的情况一样。
android.signingConfigs {
release {
storeFile = file("myreleasekey.keystore")
storePassword = "password"
keyAlias = "MyReleaseKey"
keyPassword = "password"
}
}
虽然对于提出这个问题的用户来说已经晚了,但它仍然可以帮助其他人。
以下代码示例对我来说工作正常。 我使用以下设置对其进行了测试 - Gradle-experimental-0.4.0,Gradle wrapper - 2.8,Android Studio 2.0预览版。
apply plugin: 'com.android.model.application'
model {
def signConf // <-- Note the changes made here
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.0"
defaultConfig.with {
applicationId = "in.atultiwari.helloandroidjni"
minSdkVersion.apiLevel = 15
targetSdkVersion.apiLevel = 23
versionCode = 1
versionName = "1.0"
}
}
android.buildTypes {
release {
minifyEnabled = false
proguardFiles.add(file("proguard-rules.pro"))
signingConfig = signConf // <-- Note the changes made here
}
}
android.signingConfigs { // <-- Note the changes made here
create("signRelease") { // <-- Note the changes made here
keyAlias = 'myKeyAlias'
keyPassword = 'myKeyPassword'
storeFile = file('myKestoreFile.jks')
storePassword = 'myKeystorePassword'
signConf = it
}
}
android.ndk {
moduleName = "hello-android-jni"
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
}
PS - 它不能与minifyEnabled = true
一起使用,在这种情况下会发生与transformClassesAndResourcesWithProguardForRelease
相关的错误。
编辑 - 1. minifyEnabled = true
正在使用上述设置。 事实证明我的proguard规则文件是空的,不知何故它导致了上述错误。
以下是为gradle实验0.7添加签名的方法:
apply plugin:“com.android.model.application”
model {
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
buildTypes {
release {
signingConfig = $("android.signingConfigs.myConfig")
}
}
}
android.signingConfigs {
create("myConfig") {
storeFile "/path/to/debug.keystore"
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
storeType "jks"
}
}
}
了解有关gradle experimental的更多信息:0.7.0 here:
实验插件用户指南
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.