当前位置: 首页 > 知识库问答 >
问题:

Gradle:未从嵌套项目解析类路径依赖项

邹宣
2023-03-14

我有一个多项目的构建设置与gradle将包含多个android应用程序和库。

root (Project Root)
| android
  | module1 (Android Application)
  | module2 (Android Library)
| ios (in the future)

我想应用某些分级插件只对一些子项目。(比如android gradle插件只到android子项目)因此我在:android->build.gradle和插件声明中添加了类路径依赖项到两个android子项目:
:android:module1->build.gradle->apply plugin:'com.android.application'

:android:module2->build.gradle->apply plugin:'com.android.library'。问题是gradle找不到android gradle插件:

错误:(%1,%1)评估项目“:ShopPr:Presentation”时出现问题。找不到id为“com.android.application”的插件。

此外,这也不是一个版本问题(Gradle版本3.1;Android Gradle插件版本2.2.1),因为在:root->build.Gradle:Android:modulex->build.Gradle中定义类路径依赖关系时,所有的工作都是预期的。

:root->build.gradle

allprojects {
  repositories {
    mavenCentral()
    jcenter()
  }
}

:Android->Build.Gradle

buildscript {
  repositories {
    jcenter()
  }

  dependencies {
    classpath 'com.android.tools.build:gradle:2.2.1'    <-- Should only be applied for android project
  }
}
apply plugin: 'com.android.application' --> Plugin with id 'com.android.application' not found.

:Android:module2->build.gradle

apply plugin: 'com.android.library'

共有1个答案

谢和同
2023-03-14

我见过这样的文件夹安排,特别是与谷歌样例项目,其中包括和android文件夹,还有一个web文件夹。您可以尝试导入的项目使用android文件夹作为项目文件夹,因为您可能不会使用gradle构建Ios和web,如果您有两个更多的文件夹为您的项目。

所以关闭项目并使用android文件夹作为项目根重新导入它,我相信这样,gradle应该运行良好。我的项目文件夹也是这样的,因为我将web和android项目都放在一个repo中,但是在构建android studio时,我使用android文件夹作为android的项目根。

 类似资料:
  • 我正在使用IntelliJ开发Spark应用程序。我正在遵循这个关于如何使intellij与SBT项目良好地工作的指导。 但这样我就无法在IntelliJ内部运行应用程序,因为类路径中不会包含spark依赖项。

  • 我在 ubuntu 上使用 android studio 1.5.1。我想将谷歌分析添加到我的Android应用程序中。所以我遵循了谷歌分析文档,但是当我将mavenCentral()更改为jcenter()时,Android studio无法解析此类路径: 当我按下“同步项目与Gradle文件`按钮”,Android studio大约需要15分钟,最后说: 错误:连接超时。如果您使用HTTP代理

  • 我有一个名为.jar的罐子,它依赖于我的外部库。 执行会得到以下输出, 我尝试用两种方式运行jar 并为DependedClass获得了NoClassDefFoundError 按如下所示更改清单条目后 清单-版本:1.0 创建-由:1.6.0_05(Sun Microsystems Inc.) 主-类:com.os.hw.helloworld 类-路径:c://users/vinay/deskt

  • 在使用Gradle构建的一个简单的Spring Java项目中,我使用io.Spring.dependency-management应用BOM,该BOM应该在全局指定依赖版本。 现在在BOM中,我已经覆盖了jackson-databind(2.9.5)的默认版本,从Spring Boot2.0.2.Release到2.9.10.4版本。 我在dependencyManagement部分指定了这个B

  • 问题是gradle找不到依赖项的jar,但gradle找错了地方。Gradle一直在错误的目录(谷歌和Android支持libary的目录)中搜索文件.... 在以下位置搜索:文件:/d://programme/androis-sdks/extras/android/m2repository/org/springframework/android/spring-android-rest-templ

  • 我的gradle项目(“osgiapp”)依赖于一个OSGI项目(“osgidep”),该项目具有以下MANIFEST.MF条目: 这里导出了两个包: test.lib包由osgidep.jar中包含的lib/lib.jar提供 test.osgidep包由osgidep.jar本身提供 现在,我的建筑。Gradle看起来是这样的: 当我试图构建使用两个导出包的代码时: