【问题标题】:Android Studio supports only one settings.gradle?Android Studio 只支持一个 settings.gradle?
【发布时间】:2015-06-09 21:01:56
【问题描述】:

我的项目结构如下:

- my-base
- my-main
- my-Android

my-main 使用my-basemy-Android 使用我的my-main

这是build.gradle 文件。

my-base build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'

sourceCompatibility = 1.7
version = '1.0'

repositories {
  mavenCentral()
}

dependencies {
}

jar {
  from sourceSets.main.allSource
}

task sourcesJar(type: Jar, dependsOn: classes) {
  description "Create source jar."
  classifier = 'sources'
  from(sourceSets.main.allSource) {
    exclude '**/*processor*'
  }
}

task javadocJar(type: Jar, dependsOn: javadoc) {
  description "Create javadocs."
  classifier = 'javadoc'
  from javadoc.destinationDir
}

artifacts {
  archives sourcesJar
} 

my-main build.gradle

apply plugin: 'java'
apply plugin: 'apt'
apply plugin: 'eclipse'

sourceCompatibility = 1.7
version = '1.0'

eclipse {
  classpath {
     downloadSources=true
     downloadJavadoc=true
  }
}

buildscript {
  repositories {
    mavenCentral()
    jcenter()
    maven {
      url "https://oss.sonatype.org/content/repositories/snapshots/"
    }
  }
  dependencies {
     classpath 'com.jimdo.gradle:gradle-apt-plugin:0.5-SNAPSHOT'
  }
}


repositories {
  mavenCentral()
  maven {
    name = "sonatype"
    url = "https://oss.sonatype.org/content/repositories/snapshots/"
  }
  maven {
    name = "sonatypeGoogle"
    url = "https://oss.sonatype.org/content/repositories/google-snapshots/"
  }
  flatDir {
    dirs 'lib'
  }
}

sourceSets {
  apt{
    java{
      srcDir 'build/source/apt'
      srcDir 'build/source/base'
    }
  }
}


dependencies {
  apt (project(':my-base'))
  apt 'com.google.auto.factory:auto-factory:1.0-beta2'
  apt 'com.google.dagger:dagger:2.0.1'
  apt 'com.google.dagger:dagger-producers:2.0-beta'
  apt 'com.google.dagger:dagger-compiler:2.0.1'

  compile (project(':my-base'))   

  compile 'com.google.auto.factory:auto-factory:1.0-beta2'
  compile 'com.google.auto.service:auto-service:1.0-rc2' 
  compile 'com.google.dagger:dagger:2.0.1'
}

jar {
  from "build/source/apt"
  exclude '**/*.zip'
}

我的主设置.gradle

include ':my-base'
project(':my-base').projectDir = new File('/absoltePathTo/my-base')

my-Android build.gradle

apply plugin: 'com.android.application'

buildscript {
    repositories {
        mavenCentral()
        jcenter()
        maven {
            url "https://oss.sonatype.org/content/repositories/snapshots/"
        }
    }
}

repositories {
    mavenCentral()
    maven {
        name = "sonatype"
        url = "https://oss.sonatype.org/content/repositories/snapshots/"
    }
    maven {
        name = "sonatypeGoogle"
        url = "https://oss.sonatype.org/content/repositories/google-snapshots/"
    }
    flatDir {
        dirs 'libs'
    }
}

android {
    compileSdkVersion 22
    buildToolsVersion "23.0.0 rc2"

    defaultConfig {
        applicationId "de.mytest.mytest_android"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }
    lintOptions {
        abortOnError false
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'

    compile (project(':my-main'))
}

my-Android settings.gradle

include ':app'
include ":my-base"
project(':my-base').projectDir = new File('/absoltePathTo/my-base')
include ":my-main"
project(':my-main').projectDir = new File('/absoltePathTo/my-main')

在我的主要活动中,我包含了在my-basemy-main 中定义的类:

当我从 Android Studio 外部的命令行执行 gradle build 时,我没有收到任何错误。当我在 Android Studio 中执行 gradle build 时,我得到:

Failed to set up dependencies
Error:Unable to find module with Gradle path ':my-main'.

注意:问题似乎来自于我有两个settings.gradle。一个在 my.Android 中,一个在 my-main 中。

如何在 Android Studio 导入中正确解析依赖项目 my-main 中的类?如何消除上述错误?

【问题讨论】:

    标签: java android android-studio gradle


    【解决方案1】:

    在依赖项下的“my-Android build.gradle”中,您有 编译(project(':my-main'))

    我从您的错误消息中推断出它无法知道 ':my-mine' 在哪里。尝试使用项目的绝对目录,看看是否有效。如果是这样,那么您就知道 ':my-main' 不是正确的文件路径。

    【讨论】:

    • 我这样做是因为我认为问题在于有两个 settings.gradle 文件。
    猜你喜欢
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2019-08-03
    • 1970-01-01
    相关资源
    最近更新 更多