Android Gradle zipAlign任务不起作用?
Gradle zipAlign任务似乎对我不起作用,不确定我做错了什么。我尝试过包含zipAlign任务,但没有包含,但似乎没有什么不同。我的gradle脚本给出了一个“发布”版本,但是当我试图上传我的.apk时,它从未根据开发者控制台进行zipAligned 以下是我的构建脚本:Android Gradle zipAlign任务不起作用?,android,build-process,gradle,build-automation,Android,Build Process,Gradle,Build Automation,Gradle zipAlign任务似乎对我不起作用,不确定我做错了什么。我尝试过包含zipAlign任务,但没有包含,但似乎没有什么不同。我的gradle脚本给出了一个“发布”版本,但是当我试图上传我的.apk时,它从未根据开发者控制台进行zipAligned 以下是我的构建脚本: buildscript { repositories { mavenCentral() } dependencies { classpath 'com.and
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.2'
}
}
apply plugin: 'android'
dependencies {
compile project(':facebook-android-sdk-3.0.1:facebook')
compile project(':google-play-services_lib')
compile project(':nineoldandroids')
compile project(':SlidingMenu-master:library')
compile project(':ViewPagerIndicator')
compile project(':volley')
compile project(':windowed-seek-bar')
compile files('compile-libs/androidannotations-2.7.1.jar', 'libs/Flurry_3.2.1.jar', 'libs/google-play-services.jar', 'libs/gson-2.2.4.jar', 'libs/picasso-1.1.1.jar', 'libs/crittercism_v3_0_11_sdkonly.jar', 'libs/gcm.jar', 'libs/apphance-library.jar')
}
android {
buildToolsVersion "17.0"
compileSdkVersion 17
signingConfigs {
debug {
storeFile file('keystores/debug.keystore')
}
}
buildTypes {
debug {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
release {
zipAlign true
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
}
}
感谢您的帮助 您的发布生成类型未配置为签名 如果要手动签署apk,还需要手动运行ZipAlign。ZipAlign必须在签名后进行 Gradle只有在apk也能签名的情况下才会给它zipalign 要为发布配置设置签名,您需要首先创建一个新的签名配置,然后将其分配给构建类型
android {
signingConfigs {
release {
storeFile file("/path/to/keystore")
storePassword "??"
keyAlias "??"
keyPassword "??"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
注意,签名配置中的所有4个参数都是必需的,否则会考虑某些值丢失,甚至不会尝试签署。
< P>可以使用任何现有的Android Studio GeADLE项目,并在命令行上建立/签名它,而不需要编辑任何文件。这非常适合将项目存储在版本控制中,同时将密钥和密码分开,而不是存储在build.gradle文件中:./gradlew assembleRelease -Pandroid.injected.signing.store.file=$KEYFILE -Pandroid.injected.signing.store.password=$STORE_PASSWORD -Pandroid.injected.signing.key.alias=$KEY_ALIAS -Pandroid.injected.signing.key.password=$KEY_PASSWORD
谢谢你,哈维。如何将发布版本配置为自动签名?我是否只需要创建我的发布密钥库并将其设置在signingConfigs下?是否可以在构建期间让gradle提示输入这些值?我真的不想将密码存储为纯文本。@MikeG您可以将这些参数设置为全局变量,这样您就可以在源代码中保留一个简单的引用,gradle将自动从您的全局gradle安装中获取它们(无提示,同时无共享)@MikeG-这里讨论了一些向vcs隐藏密码的方法:@MikeG显然应该可以从控制台读取凭据()