解决aar无法引用第三方远程依赖库问题

根据网上搜索结果,目前了解到的解决方法分两大类:

一、将远程依赖库的jar包下载到本地,然后拷贝到libs进行依赖替换远程依赖,之后再生成为aar文件时,就不会出现依赖库的调用类找不到的问题;

    如果自己要集成的aar中包含有其他的aar文件,需要在引入我们自己集成的aar的时候也要额外引用所包含的aar文件,这样虽然繁琐但是能够解决问题。

二、创建本地或远程maven仓库,将包含.pom格式等相关文件上传到maven仓库,然后使用依赖库的方式进行依赖来解决这个问题;

1、本地maven仓库

我尝试的是创建并使用本地maven仓库,方式如下:

首先,在需要生成为aar的library的顶部加入下面这个代码

apply plugin: 'maven'

其次,在build.gradle中加入下面这段代码,说明见注释,它们与android{}标签同级 

/**
 * 下面为创建本地仓库进行的设置
 * 1、groupId唯一标识符:包名com.android.dzrefresh 对应路径:com/android/dzrefresh
 * 2、artifactId module名称:App 对应路径:com/android/dzrefresh/App
 * 3、version版本号:1.0.0 对应路径:com/android/dzrefresh/App/1.0.0
 * 4、packaging 类库类型
 * 5、description 描述
 * 6、repository本地仓库路径
 */
// mac中在Androidstudio的terminal界面执行./gradlew uploadArchives或者./gradlew -p cashier clean build uploadArchives --info命令
// 即可在下面的自定义仓库路径下生产相应aar文件,在其他工程中添加这个本地仓库
// 的引用即可
uploadArchives {
//    configuration = configurations.archives
    repositories {
        mavenDeployer {
            repository(url: "file:///Users/mac/Desktop/localmaven/")//此为Mac上的路径方式
            pom.project {
                name 'test'
                artifactId 'test'
                groupId 'com.demo.aar'
                version '1.0.1'
                packaging 'aar'
                description 'test'

                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        distribution 'repo'
                    }
                }
            }
        }
    }
}

之后再as的Terminal窗口运行上面提示的命令行:./gradlew  uploadArchives,会出现进度条,在上传过程中会出现一些问题:

第一个问题是根目录build.gradle文件中gradle版本和依赖库build.gradle中设置的buildToolsVersion "28.0.3"版本不匹配问题,这个修改相关的版本号就行;

第二个问题是:

Could not find tools.jar. Please check that /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home contains a valid JDK installation.

出现这个问题大家可以借鉴: https://www.cnblogs.com/johnjackson/p/14040958.html他的方法,我是用的是第三种,手动复制的,复制之后成功生成本地maven。生成之后需要在根目录的build.gradle文件中引用

maven{ url 'file:///Users/mac/Desktop/localmaven/'}

之后在需要生成aar的库build.gradle文件中引用本地库,内容如下:

implementation 'com.demo.aar:aar:1.0.1'

 然后就按正常的步骤生成aar文件就可以了,至于如何生成aar文件可以查看https://blog.csdn.net/weixue9/article/details/79624845这篇文章。

2、上传到远程仓库的方式我没有尝试过,但是这个应该是没有问题的,目前我没有尝试;

关于如何创建本地仓库等内容,大家可参考网上内容;如果大家在使用本地仓库方法时能够成功,麻烦能留言交流下,谢谢。

待完善

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值