Android Studio第三方库集成

时间:2016-09-02 14:20:27

标签: android maven android-studio gradle android-gradle

我必须将第三方库集成到我的Android Studio项目中,并且没有任何问题,效果很好。

它要求将以下配置添加到项目' s build.gradle(示例配置如下)

allprojects {
    repositories {
        jcenter()
         maven {
            url "http://link/location"
         }
    }
}

然后将依赖项添加到 app.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'
}

但我的要求是创建一个库模块(在项目中),它包含了第三方库集成。

想法是将包含少量公共方法(在其中使用此第三方库方法)的库分发给其他人以在其应用程序中集成。

正如我之前提到的使用这个第三方库我需要使用他们自己的Maven Repository并要求在Projects build.gradle中放置设置。但是,由于我想在My Library Module中扭曲所有内容,我刚刚测试了将存储库位添加到库模块的 build.gradle中。但这会导致编译错误。

 repositories {
    jcenter()
     maven {
        url "http://link/location"
     }
 } 

我的问题是我可以实现我想做的事吗?如果是这样,我在这里失踪了。感谢

EDITS

简要说明我要做的事情。

此第三方库在标准jcenter或mavenCentral存储库中不可用。相反,它驻留在他们自己的Maven资源库服务器上。这就是为什么当需要集成它要求在根级别(项目)build.gradle中指定服务器位置时,如下所示。然后我可以添加依赖...

allprojects {
    repositories {
        jcenter()
         maven {
            url "http://link/location"
         }
    }
}

但是当我想要在Library Module中包含这个集成时,试图在my Library Module中将上面的存储库位置添加到gradle.build中。

所以我可以访问那些类,但编译MY Library项目的主应用程序说无法解析第三方库位置中的库。实际上,只要我的图书馆模块知道它,主要应用程序就不应该知道...

1 个答案:

答案 0 :(得分:0)

  

实际上,只要我的图书馆模块知道,主要应用程序就不应该知道

如果第三方模块是开源的,请将它分叉,将您的包装器代码放在fork中,然后通过自己的方式运送fork。

如果第三方模块不是开源软件,请与供应商讨论您通过其他方式(例如,您自己的内部存储库以及您自己的库)分发此代码的选项。