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

Gradle多项目构建失败,不支持

萧焱
2023-03-14

我正在尝试将Eclipse/ANT项目转换为Android Studio

我正在尝试设置一个多项目构建。我目前的结构是:

Root     
  -- AndroidLibraryProject    
    -- build.gradle
  -- AndroidAppProject
    -- build.gradle
    -- settings.gradle

相关构建文件的内容如下:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android-library'

repositories {
    mavenCentral()
    maven {
        url "https://github.com/dahlgren/vpi-aar/raw/master"
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:18.0.+'
    compile 'com.viewpagerindicator:library:2.4.2-SNAPSHOT'
    compile files('libs/crashlytics.jar')
    compile files('libs/gson-2.0.jar')
}

android {
    compileSdkVersion "Google Inc.:Google APIs:19"
    buildToolsVersion "18.1.1"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 17
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('tests')
    }
}
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}

evaluationDependsOn(':AndroidLibraryProject')

apply plugin: 'android'

dependencies {
    compile project()
}

android {
    compileSdkVersion 18
    buildToolsVersion "19"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 18
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src2']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}
include ':AndroidLibraryProject'
project(':AndroidLibraryProject').projectDir = new File(settingsDir, '../AndroidLibraryProject')

该库项目清洁和建设罚款自己。

A problem occurred evaluating root project 'AndroidAppProject'.
> org.gradle.api.internal.notations.api.UnsupportedNotationException (no error message)

堆栈跟踪是:

* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating root project 'AndroidAppProject'.
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:54)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:132)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:38)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:25)
    at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55)
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:468)
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:76)
    at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:31)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:142)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
    at org.gradle.api.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
    at org.gradle.launcher.Main.doAction(Main.java:46)
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
    at org.gradle.launcher.Main.main(Main.java:37)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:127)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:58)
Caused by: org.gradle.api.internal.notations.api.UnsupportedNotationException
    at org.gradle.api.internal.notations.parsers.TypedNotationParser.parseNotation(TypedNotationParser.java:45)
    at org.gradle.api.internal.notations.ProjectDependencyFactory.createFromMap(ProjectDependencyFactory.java:37)
    at org.gradle.api.internal.artifacts.DefaultDependencyFactory.createProjectDependencyFromMap(DefaultDependencyFactory.java:59)
    at org.gradle.api.internal.artifacts.dsl.dependencies.DependencyFactory$createProjectDependencyFromMap.call(Unknown Source)
    at org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.project(DefaultDependencyHandler.groovy:75)
    at build_61tpm2tlp3rmsq0660pqjvv93o$_run_closure1.doCall(/Users/seth/Documents/Development/Android/AndroidAppProject/build.gradle:15)
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:58)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:130)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:91)
    at org.gradle.api.internal.project.AbstractProject.dependencies(AbstractProject.java:883)
    at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:246)
    at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:134)
    at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:147)
    at org.gradle.groovy.scripts.BasicScript.methodMissing(BasicScript.java:79)
    at build_61tpm2tlp3rmsq0660pqjvv93o.run(/Users/seth/Documents/Development/Android/AndroidAppProject/build.gradle:14)
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:52)
    ... 33 more

如蒙指导,不胜感激。我是不是把这个项目的配置都搞错了?我甚至不确定它是否与我的构建配置有关。

共有2个答案

慎风畔
2023-03-14

虽然斯科特·巴塔是对的——我的settings.gradle文件位于错误的目录级别,并且评估依赖是不必要的,但它仍然不是不支持标记异常的原因。显然打电话给

dependencies {
    compile project()
}

完全没有必要,尽管这是Eclipse中ADT的Gradle导出的结果。我在Android Studio中创建了一个新项目,并将它创建的构建文件与我的进行了比较,发现了这种差异。

在移除它并将我的settings.gradle文件移动到根部后,从那里开始一切都在走下坡路。

庄星汉
2023-03-14

settings.gradle文件向上移动一级到根目录。然后,您应该能够像这样指定它:

include ':AndroidLibraryProject', ':AndroidAppProject'

应用程序构建文件中带有evaluationDependsOn的位可能比您需要的更复杂。让应用依赖于库项目的正常方式是:

dependencies {
    compile project(':AndroidLibraryProject')
}

目前,Android Studio不支持在项目根目录之外拥有库或模块(https://code.google.com/p/android/issues/detail?id=56367),我认为您的原始设置可能符合此条件,因为它可能会处理包含设置的目录。格拉德尔是根。如果像我所描述的那样进行设置,它会更快乐。

 类似资料:
  • 主要内容:多项目构建的结构,指定常规构建配置,项目指定配置和依赖关系,Gradle多项目构建的示例,子项目配置,参考可以轻松处理各种大小规模的项目。小项目由一个单一的构建文件和一个源代码树构成。 大项目可以将其拆分成更小的,相互依赖的模块,以便更容易理解。Gradle完美支持这种多项目构建的场景。 多项目构建的结构 这种构建有各种形状和大小,但它们都有一些共同的特点 - 在项目的根目录或主目录中都有一个文件。 根目录或主目录都有一个文件。 具有自己的构建文件的子目录(某些多项目构建可能会省略子项

  • 问题内容: 我试图构建新项目,但是当我单击构建时,构建每次都会失败。 我尝试删除我的项目并再次创建它,但是仍然没有帮助。 警告 错误 这些是Xcode向我显示的错误消息。项目名称为“ MyFirstApp”,我在该错误消息上剪切了一些文件路径。那么我如何建立这个项目呢? 问题答案: 在终端中尝试:

  • 分级任务 null 在https://help.gradle.org获得更多帮助

  • 我不知道该怎么办;我卡住了。我有以下依赖关系,以前一切都很好: 然后,突然,它开始说: 我不确定是什么改变了,或者是什么导致了这种情况的发生。

  • 我使用的是Unity 2019.3.3f1个人版,当我尝试构建64位时,我遇到了212个错误。我认为这是最重要的一个,所以我只是粘贴这些: 命令InvokationFailure: Gradle构建失败。C:/程序文件/统一/集线器/编辑器/2019.3.3f1/编辑器/数据/播放引擎/Android玩家\OpenJDK\bin\java.exe-classpath"C:\程序文件\统一\集线器\

  • 我正在改变我们的项目,以使用gradle作为构建工具,但正在与2个问题斗争;