• 添加aar依赖库遇到的问题记录


    一、将module打包成aar库
    1.1、module的
    build.gradle文件
    plugins {
      //id 'com.android.application'//变更为下面代码
       id 'com.android.library'
    }
    android {
      ......
    defaultConfig {
    //applicationId "********"//删除该代码
            ......
        }
      ......
    }
    //下面代码是和android{......}同级。
    def _BASENAME = "TestJar";
    def _VERSION = "_V1.0";
    def _DestinationPath = "build"; //生成jar包的位置
    def zipFile = file('build/intermediates/intermediate-jars/release/classes.jar'); //待打包文件位置
    task deleteBuild(type:Delete){
    delete _DestinationPath + _BASENAME + _VERSION + ".jar"
    }
    task makeJar(type:Jar){
    from zipTree(zipFile)
    from fileTree(dir:'src/main',includes:['assets/**']) //将assets目录打入jar包
    baseName = _BASENAME + _VERSION
    destinationDir = file(_DestinationPath)
    }
    makeJar.dependsOn(deleteBuild, build)
    1.2、在Android studio进行打包如下图,最终生成的aar文件位于项目路径\app\build\outputs\aar下,选用release版本就很好。



    二、引用aar依赖库

    1、添加依赖时报错:More than one file was found with OS independent path 'lib/x86/libc++_shared.so'
      在module的build.gradle中添加
      android{
        ........
        packagingOptions {//加上这些代码  More than one file was found with OS independent path 'lib/x86/libc++_shared.so'
        pickFirst 'lib/armeabi-v7a/libc++_shared.so'
        pickFirst 'lib/armeabi-v8a/libc++_shared.so'
        pickFirst 'lib/arm64-v8a/libc++_shared.so'
        pickFirst 'lib/x86/libc++_shared.so'
        pickFirst 'lib/x86_64/libc++_shared.so'
        }
      }
    2、aar中如果有布局文件,如果aar布局文件的名跟主module中的布局文件重名,就会导致aar中引用该布局文件异常。
    3、aar包中只有资源文件和class文件,所以aar中需要的第三方依赖,需要在主module中添加一遍。
    4、AndroidManifest.xml合并出问题时android:tools="android:icon"应该添加在设置android:icon属性的地方,不管是application、activity、meta-data或者其它。

















  • 相关阅读:
    Kafka集群搭建
    Easyui dialog中嵌入iframe
    图表插件Charts.js的使用
    抽象工厂
    工厂方法
    简单工厂模式
    认识Git
    代理模式
    原型设计Axure的基本使用
    MVC Api 的跨项目路由
  • 原文地址:https://www.cnblogs.com/qynprime/p/16050502.html
Copyright © 2020-2023  润新知