簡體   English   中英

Android Studio僅支持一個settings.gradle嗎?

[英]Android Studio supports only one settings.gradle?

我有以下項目結構:

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

my-main使用my-basemy-Android使用my-main

這是build.gradle文件。

我的基地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
} 

我的主要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'
}

我的主要settings.gradle

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

我的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中。

如何從依賴項目my-main獲取類,並在Android Studio導入中正確解析? 如何清除以上錯誤?

在依賴項下的“ my-Android build.gradle”中,您已進行編譯(project(':my-main'))

我從您的錯誤消息中推斷出,它很難知道':my-mine'在哪里。 嘗試對項目使用絕對目錄,看看是否可行。 如果是這樣,則說明':my-main'不是正確的文件路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM