app声明从配置'compile'到配置'default'的依赖关系,它没有在项目描述符中声明

rar*_*t02 50 android android-studio android-gradle-plugin

我正在我的项目中导入一个名为"wear"的库模块,在构建时,我得到了这个:

错误:配置项目':app'时出现问题.
无法解析配置':app:_debugApk'的所有依赖项.
Project:app声明从配置'compile'到配置'default'的依赖项,它没有在project:wear的描述符中声明.

这是什么意思?我怎么能摆脱这个?

小智 37

当Gradle无法找到特定组件时,通常会发生此错误.我在尝试使用Salesforce React Native Android示例时遇到过这种情况.

您收到的错误消息看起来就像您发布的那个...在我的情况下它是

Project :app declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :libs:SalesforceReact.
Run Code Online (Sandbox Code Playgroud)

settings.gradle在projects android目录中找到了我的Gradle设置文件(名为).它的开头看起来像这样

rootProject.name = 'SmartSyncExplorerReactNative'

def libsRootDir = new File( settingsDir, '../node_modules/SalesforceMobileSDK-Android/libs' )
include ':app'

include ':libs:SalesforceReact'
project( ':libs:SalesforceReact' ).projectDir = new File( libsRootDir, 'SalesforceReact' )
Run Code Online (Sandbox Code Playgroud)

在这种情况下,给出的路径libsRootDir不存在(因为这些库实际上来自我克隆的不同存储库,然后指向此路径!).

一旦我纠正了路径,保存设置文件并重新启动,一切顺利进行.

乔纳森,我希望这会有所帮助.


Sau*_*ari 13

当我更新android studio 3.0并且以下解决方案适合我时,我遇到了同样的问题

implementation project(path: ':yourModule', configuration: 'default')
Run Code Online (Sandbox Code Playgroud)

如果您使用Gradle4.1及以上版本,此解决方案将起作用Gradle Plugin Version 3.0.0.

我希望这对你有用


小智 6

我也发现了这个错误。所以,我注意到我的settings.gradle正在寻找一个不存在的路径。示例:(settings.gradle)

project(':YourProjectV1').projectDir = new File('../YourProjectFolderV1/app/');
Run Code Online (Sandbox Code Playgroud)

但是,在我的文件系统中,路径是:../YourProjectFolder v 1

同步名称后,项目就OK了!

我希望这有帮助。


小智 5

我遇到了一个类似的问题与一组不同的模块.我终于能够通过npm重新安装必要的模块来解决它,但是使用了--save标志.即"npm install --save module-name"

看起来如果你只是在模块文件夹中有.iml文件,那么android studio解析它是不够的.

祝好运.


小智 0

我也遇到了这个错误,原来是库路径发生了变化。我使用的react-native-maps版本1.4

settings.gradle将react-native-maps依赖路径更改为

... include ':react-native-maps' project(':react-native-maps').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-maps/lib/android')

我觉得安装手册没有更新