解决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窗口运行上面提示的命令行,提示成功之后就表示创建并上传成功,但是生成maven仓库后,在进行集成的时候却出现了失败,as无法识别本地maven仓库,造成依赖库的相关文件找不到,下载不到项目缓存区,所以这个方法目前失败,也不知道是不是我的某些as文件配置不对还是怎么的,创建本地仓库的方式不成功,提示错误如下:

ERROR: Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve ***:***:1.0.0
ERROR: Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve ***:***:1.0.0

会提示多个类似这样的错误,目前不知该如何解决,有知道的还烦请告知

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

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

待完善

你可能感兴趣的:(Android问题及解决)