如何在将应用程序转换为库以在另一个应用程序中使用时配置Gradle依赖项

时间:2017-05-26 17:05:33

标签: android gradle

由于一些无聊的原因,我必须将现有的应用程序拆分为具有多个APK的手机和平板电脑版本(每个版本都有近100Mb的不同静态资源 - 是的,我很生气这个负责人要求)。

为实现这一目标,我正在使用原始包中的com.android.library将原始应用转换为Android库(并从applicationId移除build.gradle)。

要将库导入我的新应用(myProjectTablet),我将以下内容添加到settings.gradle

include ':myProjectLib'
project (':myProjectLib').projectDir = new File('../myProjectRoot/myProjectLib')

为了编译它,我将以下内容添加到build.gradle

compile project (':myProjectLib')

目前,我需要两个基于此库的应用程序,因此目录结构为:

myProjectRoot
    myProjectLib
    myProjectPhone
    myProjectTablet

最后问我的问题:无论我如何调整路径等,我都会收到以下Gradle错误的变体:

Error:Project :tablet declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :lib.

从我的搜索来看,这通常与在某些库和工具的上下文中使用default关键字的冲突有关,但我不相信我的应用程序有类似的东西。如果有人对此错误有任何见解,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

经过两天搞砸了(并且不小心试图将其放在评论中),我终于意识到了:

project (':myProjectLib').projectDir = new File('../myProjectRoot/myProjectLib')

需要:

`project (':myProjectLib').projectDir = new File('../myProjectLib')`

Gradle似乎没有找到项目。