APP打包成aar被主工程引用遇到的坑!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/c6E5UlI1N/article/details/82920203

    最近一个需求是做一个应用集成,要把之前做的两个APP打包到新的app里使用,首先我们的思路是把之前的APP打包成aar提供给新APP主工程引用即可。把代码copy进主工程里的思路就算了吧,哈哈,下面说下遇到的坑以及注意事项:

一、之前的app的主模块还引用了别的module,

         所以在复制app里的aar的时候也要把它引用的module的aar一块copy出来,不然会提示module里的类找不到!当然aar里边的build.gradle文件里的引用,比如implementation'com.github.bumptech.glide:glide:3.7.0'也得在主工程里引入一遍。有没有似曾相识?这就跟之前打包jar一样,如果jarA里边有引用别的jarB,在使用jarA的时候也要一块copy jarB一起引入使用。aar就是别jar多了xml文件。

二、打包成功了,再说下引用的各种冲突问题:

1、jar冲突,如果aar里边使用的jar包正好在主工程里也使用了,那么这个时候会报jar包重复引用的错误,解决方法是 把aar里的jar删掉,采用complie或者implementation的形式去引用比如:implementation'com.github.bumptech.glide:glide:3.7.0'。

2、开发中添加了一个第三方框架,结果框架里的 design 包为25,我的版本为24,由于网络原因,不想下载.但是或报错.

Error:Failedtoresolve:com.android.support:design:25.1.0

那么如何不用框架中的design 包,而用自己项目中的design 包呢?

运用exclude group 关键字就可以

compile ('com.***.***:XXX:1.0.0') {// 所加的第三方框架exclude group:'com.android.support',module:'design'// 加载时排除框架中的design包}

问题解决

3、在gradle 3.0.0中AAPT2是默认打开的,在项目的gradle.properties中添加android.enableAapt2=false,sync后就编译通过了。

4、com.android.support:multidex:1.0.2的使用

在Module的build.gradle的defaultConfig中加一行multiDexEnabled true;

在dependencies中添加一行compile 'com.android.support:multidex:1.0.0';

app的Application使用android.support.multidex.MultiDexApplication或者您的Application应继承android.support.multidex.MultiDexApplication;

如果有自定义的Application,那么在自定义的Application类中,重写attachBaseContext(),并且在其中调用super.attachBaseContext(),然后调用MultiDex.install(this) ,然后在该方法上加上@Override注解,既然是重写方法,最好加上这个注解,不过Android Studio会自动加上。

5、多library合并打包成aar的正确方式(fat-aar)

参考链接https://www.cnblogs.com/Jason-Jan/p/9192273.html

6、Multiple entries with same key: android:theme=REPLACE and android:theme=REPLACE

如果aar里边用到了tools:replace=android:theme...再在主工程里使用此属性,就会报这个错误,编译不通过。

解决方法:去掉主工程tools:replace=android:theme...里边的android:theme,把application下边的属性android:theme=“@style/apptheme” apptheme的名字改成跟aar里边的名字一样即可。

后续遇到的其他问题会继续更新,欢迎关注。。。欢迎评论区提问讨论

                        喜欢 就关注吧,欢迎投稿!

640?wx_fmt=jpeg



猜你喜欢

转载自blog.csdn.net/c6E5UlI1N/article/details/82920203