使用 gradle 将独立的本地库包含到我的 android 应用程序中

Include independent local library to my android app with gradle

我很难将本地库作为我的 android 应用程序的依赖项使用 gradle。

主要是因为这个库是我的android应用所在项目之外的独立库。

据我了解,这可以使用 composite builds 来完成。所以我尝试使用它。

我创建了一个非常小的 repo 来说明我的问题:https://github.com/ampeixoto/composite-build-example

基本上我想添加 :my-external-lib 作为 :app 模块的依赖项

所以我在 my-composite-app\settings.gradle 中添加了 includeBuild '../my-external-lib'

到目前为止,如果我同步 gradle,我现在可以在项目结构中看到 my-external-lib

但是当我尝试将依赖项添加到 app\build.gradle:

dependencies {

    //Trying to add the dependency to my lib here
    implementation project(":my-external-lib")

    //other dependencies
}

同步时出现以下错误 gradle:

Caused by: org.gradle.api.UnknownProjectException: Project with path ':my-external-lib' could not be found in project ':app'.
    at org.gradle.api.internal.project.DefaultProject.project(DefaultProject.java:659)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:484)
    at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:196)
    at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
    at org.gradle.internal.extensibility.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:34)
    at org.gradle.groovy.scripts.BasicScript$ScriptDynamicObject.tryInvokeMethod(BasicScript.java:135)
    at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:77)
    at build_4wxxt4nomiqq4pt98j577hegv$_run_closure2.doCall(C:\Projects\CompositeBuildExample\my-composite-app\app\build.gradle:42)

我觉得我遗漏了一些简单的东西,但不确定是什么...任何指针将不胜感激。

好的,找到问题了。需要在 my-external-lib\build.gradle 上添加 group 'com.example' 然后我可以添加依赖项,例如使用:

implementation "com.example:my-external-lib"

请参阅 commit 进行修复。