似乎Gradle zipAlign任务不适用于我,不确定我在做什么错。我试过包括zipAlign任务,但不包括它,但是似乎没有什么不同。我的gradle脚本吐出了一个“发布”版本,但是当我尝试上载.apk时,它从来没有根据开发人员控制台进行zipAlign。
这是我的构建脚本:
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个参数都是必需的,否则它将认为某些值丢失,甚至不会尝试签名。