您的位置:首页 > 移动开发 > Android开发

gradle兼容性问题

2017-01-06 23:01 106 查看
gradle的兼容性并不很好。

移除了tasks.getByName

Android gradle plugin 2.1.3和2.2.3之间就存在兼容性问题。

Android gradle plugin 2.2移除了tasks.getByName(‘xx’),改为直接使用task名字xx。但是为了最好的兼容性,要使用afterEvaluate后使用。



afterEvaluate {
taskxx.doLast{}
}


gradle和plugin的兼容性

参考https://developer.android.google.cn/studio/releases/gradle-plugin.html

gradle android plugingradle
1.0.0 - 1.1.32.2.1 - 2.3
1.2.0 - 1.3.12.2.1 - 2.9
1.5.02.2.1 - 2.13
2.0.0 - 2.1.22.10 - 2.13
2.1.32.14.1 - <3.2.1
2.22.14.1 -
gradle 3.2.1不再兼容Android gradle plugin 2.1.3,至少要升级到2.2。

unaligned apk问题

确认android gradle plugin 2.1.3编译时会同时生成unaligned apk和正常的apk,而android gradle plugin 2.2.3编译时则不生成unaligned apk。我感觉应该是apk生成需要两个阶段先是unaligned,然后再zipalign变成aligned。unaligned平常算是中间产物。

apk生成过程(http://stackoverflow.com/questions/30366905/difference-between-app-debug-apk-and-app-debug-unaligned-apk):

generate a private key (keytool)

compile to get the unsigned APK -> unaligned unsigned APK

Sign app in debug/release mode using private key (jarsigner) -> unaligned signed APK

align the APK (zipalign) -> aligned signed APK

app-debug-unaligned.apk = Unaligned Signed APK

app-debug.apk = Aligned Signed APK (RAM optimized using zipalign)

ps:如果希望生成unsigned apk,需要signingConfig null。

shrinkResources失败

android gradle plugin 2.1.3 shrinkResources true成功,但是android gradle plugin 2.2.3 shrinkResources编译会失败。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gradle android