美文网首页
Android Studio导入jar/aar包常见问题

Android Studio导入jar/aar包常见问题

作者: 天下不喵 | 来源:发表于2018-08-28 16:39 被阅读187次

    几个Android Studio导包的方式和特点:

    方式1:直接引用下载网络jar包

    implementation ‘com.Android.support:support-v4:23.3.0’   导入到main模块中

    testImplementation ‘com.Android.support:support-v4:23.3.0’   导入到test模块中

    androidTestImplementation ‘com.Android.support:support-v4:23.3.0’   导入到androidTest模块中

    方式2:引用libs下所有jar包(最好不要用,自己一个一个引入比较好)

    implementation fileTree(dir: ‘libs’, include: [‘*.jar’])

    testImplementation、androidTestImplementation同理

    方式3:引用一个jar

    implementation files(‘libs/fastjson-1.1.53.android.jar’)

    testImplementation、androidTestImplementation同理

    方式4:引用一个aar文件,注意并不能像 方式2 那样自动引用全部的aar,而需要对每个aar分别进行引用。

    implementation(name:‘aar_file_name’, ext: ‘aar’)

    testImplementation、androidTestImplementation同理

    方式5:引用库类型的项目

    implementation project(‘:xxxsdk’)

    方式6:仅仅在编译时使用,但最终不会被编译到apk或aar里

    provided files(‘libs/glide-3.7.0.jar’)

    查看一下报错的信息,大部分jar包冲突报错信息如下:

    Android Studio:Multiple dexfilesdefine Landroid/support/annotation/AnimRes

    大部分人报错原因为: 

    1: app/libs下有两个两个相同的jar包或者dependencies{}里面compile了两个相同库

    2:项目引入v4包和v7包,因为v7包里面包含了v4包,所以导致冲突,这个可以用以下方法解决:

    compile('com.android.support:appcompat-v7:23.3.0') {            excludemodule: 'support-v4'}

    默认情况下v7中是包含V4包的,exclude 的意思就是从v7包中去除v4包这样就可以解决冲突

    3: 例如引入的module中有v4包,然后主module又有v4包,如果你不想删除任何一个v4包,或者其他情况不能把其中的一jar包删除,这时候就要注意到注意compile 和 provided 的区别了:

    compile :jar包/依赖代码 在编译的时候需要依赖,在运行的时候也需要

    provided : jar包/依赖代码 仅在编译的时候需要,但是在运行时不需要依赖

    也就是说,你只要吧其中任意一个改为provided就可以了

    注意没效果的可以多clean,rebuild一下,或者删除build目录

    网上还有几个处理不同情况jar包冲突的方法,如: 

    在 allprojects{}里面配置

    configurations {all*.excludegroup:'com.android.support', module:'support-v4'all*.excludegroup:'com.android.support', module:'support-annotations'}

    表示在jar包里面如果有包含 v4包或者annotations包,则从包中去除(这种方法我的没解决) 

    借鉴自

    https://blog.csdn.net/sinat_26708383/article/details/65938736

    相关文章

      网友评论

          本文标题:Android Studio导入jar/aar包常见问题

          本文链接:https://www.haomeiwen.com/subject/fxrqwftx.html