我必须将第 3 方库集成到我的 Android Studio 项目中,并且效果很好,没有任何问题。
它要求将以下配置添加到 项目 ' 小号 build.gradle(示例配置如下)
allprojects {
repositories {
jcenter()
maven {
url "http://link/location"
}
}
}
然后将依赖项添加到 应用程序.gradle 如下
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:support-v4:24.1.1'
compile 'com.android.support:cardview-v7:24.1.1'
compile 'xxx.xx:xxx:1.11.0:@aar'
}
但是我在这里的要求是创建一个库模块(在项目中),其中包含这个第 3 方库集成。
想法是将包含很少公共(public)方法(其中使用此第 3 方库方法)的我的库分发给其他人以集成到他们的应用程序中。
正如我之前提到的要使用这个 3rd 方库,我需要使用他们自己的 Maven 存储库并要求在 Projects build.gradle 中放置设置。但是因为我想在我的库模块中扭曲所有内容,所以我刚刚测试了添加 存储库 进入 库模块的构建.gradle。但这提供了编译错误。
repositories {
jcenter()
maven {
url "http://link/location"
}
}
我的问题是我能实现我想要做的事情吗?如果是这样,我在这里缺少什么。谢谢
编辑
简而言之,我正在尝试做什么。
此第 3 方库在标准 jcenter 或 mavenCentral 存储库中不可用。相反,它驻留在自己的 Maven 存储库服务器上。这就是为什么当需要集成时,它要求在根级别(项目)build.gradle 中指定服务器位置,如下所示。然后我可以添加依赖项...
allprojects {
repositories {
jcenter()
maven {
url "http://link/location"
}
}
}
但是当我想在库模块中结束这个集成时,我试图在我的库模块中将上面的存储库位置添加到 gradle.build 中。
所以我可以访问那些类,但编译我的库项目的主应用程序说无法解析第 3 方库位置中的库。实际上,只要我的库模块知道,主应用程序就不应该知道...
最佳答案
Actually Main Application should NOT want to know as long as My Library Module knows it
如果第三方模块是开源的,则对其进行 fork,将您的包装器代码放入 fork,然后以您自己的方式发布 fork。
如果第三方模块不是开源的,请与供应商讨论通过其他方式(例如,您自己的内部存储库,以及您自己的库)分发此代码的选项。
关于Android Studio 3rd 方库集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39294667/