版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_23575795/article/details/78601465
系统打包工具异常,什么鬼?
解决方案:
在gradle.properties文件里添加:android.enableAapt2=false 。解决!!!
那就有必要了解下AAPT了:
AAPT-Android Asset Packaging Tool(android资源打包工具);
对于怎么构建apk的,借用google官网的一张图,看一下流程:
流程简单说一下:
1.工程的资源文件(res下的文件),通过AAPT打包成R.java类文件(资源ID索引表),及arsc资源文件;
2.如果有AIDL(Android Interface definition Language),通过aidl工具,打包成java接口;
3.R.java和aidl.java通过java编译器编译成.class文件;
4.class文件和第三方jar或者library通过dx工具打包成dex文件。dx工具的主要作用是将java字节码转换成Dalvik字节码,在此过 程中会压缩常量池,消除一些冗余信息等;
5.apkbuilder工具会将所有没有编译的资源,.arsc资源,.dex文件打包到一个完成apk文件中中。
6.签名,5中完成apk通过配置的签名文件(debug和release都有),jarsigner工具会对齐签名。得到一个签名后的apk,signed.apk
7.zipAlign工具对6中的signed.apk进行对齐处理,所谓对齐,主要过程是将APK包中所有的资源文件距离文件起始偏移为4字节整数 倍,这样通过内存映射访问apk文件时的速度会更快。对齐的作用主要是为了减少运行时内存的使用。