Android SDK开发之aar从0到1 踩坑史

记录一下开发aar所填的坑。

前期:

     ①使用Android Studio新建一个项目

     ②File--New--New Module创建一个module(在此module里开发你的aar逻辑)

1.如果生成的aar里没有依赖的第三方的库则可以使用这种方式:

     在书写完代码后,执行Build--Rebuild project    待重置完后在module里  build-----outputs-----aar文件夹里会生成以

 aar为后缀的东东。 将其拷贝到主module的libs里,在build.gradle里配置

Android SDK开发之aar从0到1 踩坑史

注:通过以上方式就可以调用aar里的方法了

2.如果你的aar里有依赖的第三方依赖,通过上述方式就不行了(第三方依赖打不进aar里)

第一种:本地maven仓库形式,适用于自己开发使用(如果aar拷贝给别人使用,则别人照样无法依赖到第三方)

在module的build.gradle里配置

注:确保你的环境变量ANDROID_HOME可用(怎么配置ANDROID_HOME百度即可)

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "file://localhost/" + "你的SDK安装目录" +"/extras/android/m2repository/");
            pom.version = '版本'
            pom.groupId = '生成的aar目录包名'
            pom.artifactId = 'aar名称'
        }
    }
}

// 源代码一起打包.
task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.sourceFiles
}
artifacts {
    archives androidSourcesJar
}

 

在Studio窗口右侧有个Gradle  点开 找到自己写的module下有Tasks---upload--uploadArchives 

Android SDK开发之aar从0到1 踩坑史

 

双击uploadArchives运行完毕后,在你的SDK安装目录下 /extras/android/m2repository/你自己填的包名下     会有aar生成

Android SDK开发之aar从0到1 踩坑史

 

在主Module的build.gradle里引用

implementation 'com.chint.uniqlosdk:uniqlosdk:1.0-release'(就这一行就可以)

第二种:aar拷给别人使用,通过GitHub的方法实现创建远程maven仓库(解决第三方依赖无法使用问题)

在GitHub上新建一个仓库  

Android SDK开发之aar从0到1 踩坑史

通过Studio将该库clone下来

在module的build.gradle里配置(这里不是clone下来的项目)

uploadArchives {
    repositories {
        mavenDeployer {
            //这个地址为你clone下来库的地址
            repository(url: "file://E:\\Github_Repository\\Project\\HxhSDK")

            pom.version = '1.0-release'//版本
            pom.groupId = 'com.hxh.hxhsdk'//aar在安装的SDK目录下输出的路径
            pom.artifactId = 'hxhdk'//
        }
    }
}

// 源代码一起打包.
task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.sourceFiles
}
artifacts {
    archives androidSourcesJar
}

在Studio的Terminal执行命令 gradlew uploadArchives   若看到BUILD SUCCESS则成功

这时在clone的项目里会有一个文件夹 这个文件夹包含着生成的aar所有东西  把这个文件夹下的所有东西上传到GitHub,

上传之后在 主module里添加依赖

第一个参数:groupId

第二个参数:artifactId

第三个参数:version

implementation 'com.hxh.hxhsdk:hxhsdk:1.0-release'

在项目的build.gradle里添加

maven { url "https://raw.githubusercontent.com/GitHub用户名/GitHub上的库名/master" }

示例:

Android SDK开发之aar从0到1 踩坑史

配置完这两处  同步下项目就可以了  GitHub托管就不用在往libs里拷贝aar了

注:还有一种比较low的方法:

生成aar后拷贝到libs里  若使用到了第三方的库  在主module里手动添加上依赖