Gradle 找不到参数的方法 compile()



我有一个Hello World全屏Android Studio 1.5.1应用程序,我在其中添加了Gradle/Eclipse-Mars子项目。 除了将包含":javalib"添加到settings.gradle之外,没有修改其他文件。 添加项目库依赖项:

project(':app') {
    dependencies {
        compile project(':javalib') // line 23
    }
}

到根构建构建文件并从命令行运行 gradle,得到:

  • 哪里:构建文件 'D:\AndroidStudioProjects\AndroidMain\build.gradle' 行:23

  • 出了什么问题:评估根项目"AndroidMain"时出现问题。

    在 org.grad 上找不到参数 [项目 ':javalib'] 的方法 compile() le.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@46 3CA82F.

将 Java 插件添加到根构建文件没有帮助。

我不认为它在错误的地方。

根项目和添加的子项目都有 Gradle 包装器。

任何指示将不胜感激。

谢谢

编辑:为

澄清起见,根构建文件为:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        jcenter()
    }
    task hello << { task -> println "I'm $task.project.name" }
}
project(':app') {
    dependencies {
        //compile project(':javalib') // causes problems
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

应用构建文件为:

apply plugin: 'com.android.application'
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"
    defaultConfig {
        applicationId "acme.androidmain"
        minSdkVersion 22
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    //compile project(':javalib') // use :javalib:jar?
    //testCompile project(':javalib')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:support-v4:23.1.1'
}

编辑:本练习的全部目的是将核心Java代码放入Android项目中。 目前,核心代码是一个独立的Gradle/eclispe项目。 我在 Android 项目中有一个批处理,它执行 gradle -P 独立投影目录/jar 并将该 jar 复制到 libs/中。

我只是认为除了发布 jar 并从存储库获取它之外,还有一种更简单的方法,因为这一切都在我的 PC 上完成。

让所有代码都上线并只做一个构建:(会很好

编辑:根据RaGe的建议,这是一个Virgin Android Studio项目和一个Virgin Gradle/Eclipse项目。 尚未对这些文件进行任何编辑。 如果你选择接受它,你的任务是让Android应用程序轻松访问Java项目类(即新的Library();在MainActivity.onCreate()中将编译并运行)。 我不在乎Java项目在哪里。 理想情况下, 这两个源都将存在于两个 IDE 中。

试探此操作也会失败。 说:> 找不到:virginjavaproject,但目录确实存在。

编辑:真正起作用的是RaGe对Virgin Android项目的拉取请求。

你已经有

compile project(':javalib') 

:app项目中,您不必从根 build.gradle 注入依赖项。如果您仍然想从根build.gradle执行此操作,正确的方法是:

configure(':app') {
    dependencies {
        compile project(':javalib') // causes problems - NOT ANYMORE!
    }
}

Virgin Android Studio Head是有效的。

我们有2个名为"build.gradle"的文件。确保您已将"编译代码"复制到"app"文件夹中的build.gradle文件中

正如@peter-niederwieser所说:

构建脚本

将构建脚本依赖项(即构建本身的依赖项;通常这意味着 Gradle 插件)与常规依赖项(即要编译/运行的代码的依赖项)混合在一起。后者需要进入依赖 { ... },而不是进入构建脚本 { 依赖关系 { ... } }。除类路径依赖关系之外的所有内容都是常规依赖关系。

另请查看此内容:找不到参数 Gradle 的方法 compile()。

只需将其粘贴到 build.gradle(Project:"Your prject name")

 // Top-level build file where you can add configuration options common to all sub-projects/modules.
  buildscript {
    repositories {
        jcenter()
}
   dependencies {
    classpath 'com.android.tools.build:gradle:2.1.2'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
     }
 }
   allprojects {
repositories {
    jcenter()
   }
}
task clean(type: Delete) {
delete rootProject.buildDir
}

我遇到了这个问题,但我有自己的库。正确编译的方法是:

compile project(path: ':MyLib')

相关内容

  • 没有找到相关文章

最新更新