【问题标题】:Migration from Intellij IDEA project to Android-studio with gradle使用 gradle 从 Intellij IDEA 项目迁移到 Android-studio
【发布时间】:2014-02-02 19:06:14
【问题描述】:

项目有结构

MainProgect(He also root of the whole project)

    --SubProgectLib    
        build.gradle

    --SubProgectLib2    
        build.gradle

    --src
    --res

    AndroidManifest.xml
    settings.gradle
    build.gradle

在文件settings.gradle中

include ':SubProgectLib'
include ':SubProgectLib2'

当我使用 Gradle 同步项目时

Gradle 'MainProgect' project refresh failed:
         Configuration with name 'default' not found.   

MainProject build.gradle:

 buildscript
            {
                repositories
                        {
                            mavenCentral()
                        }
                dependencies
                        {
                            classpath 'com.android.tools.build:gradle:0.7.+'
                        }
            }

    allprojects
            {
                repositories
                        {
                            mavenCentral()
                        }
            }

    apply plugin: 'android'
    android
            {
                compileSdkVersion 19
                buildToolsVersion "19.0.1"

                defaultConfig
                        {
                            minSdkVersion 8
                            targetSdkVersion 19
                            versionCode 1
                            versionName "1.0"
                        }


                sourceSets
                        {
                            main
                                    {
                                        manifest.srcFile 'AndroidManifest.xml'
                                        java.srcDirs = ['src']
                                        res.srcDirs = ['res']
                                    }
                        }

                buildTypes {
                    release {
                        runProguard false
                        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
                    }
                }
            }



    dependencies
            {

                compile 'com.android.support:support-v4:19.0.1'
                compile 'com.google.android.gms:play-services:3.2.+'            
                compile project(':SubProgectLib')
                compile project(':SubProgectLib2')
                compile fileTree(dir: 'libs', include: '*.jar')
            }

【问题讨论】:

  • 我的 settings.gradle 是这样的:include 'android', 'core', 'oth-module-3' 一行
  • 如果您的任何模块中没有 build.gradle 文件,就会发生这种情况。检查一次是否是这种情况。
  • MainProject的build.gradle文件是什么意思,是根目录下的那个吗?
  • @pyus13 是的,它在根目录中
  • 我需要更多信息。但是,这个 SO 问题有太多的修改和 cmet,以至于很难遵循。也许是一个具有良好描述和所有相关构建文件和日志文件的新问题?

标签: android gradle android-studio android-gradle-plugin build.gradle


【解决方案1】:

build.gradle 文件的内容似乎放错了位置。在 Intellij 的项目结构中,有一个项目可以有多个模块,一个模块可以依赖其他模块,也可以像 jars 一样有自己的依赖项。

正如 cmets 中所确认的,您在问题中包含的 build.gradle 文件是根目录中的文件,这是不正确的。这应该是主模块的build.gradle 文件。

剪切apply plugin : 'android'之后的内容,并将其粘贴到主模块的build.gradle文件中,包括这一行。

您可以在根级别 build.gradle 文件中定义所有模块中通用的内容,例如这里的 gradle 版本和存储库声明。 Gradle 构建系统在编译所有模块时包含根级文件。

编辑:

你的项目结构应该是这样的

Project Root
+-- libraries
    +-- SubModule(your lib project)
        +--src
        +--.......
        +--build.gradle
+-- App(Main Module)
|   +-- builds
|   +-- src
|   |   +-- main (java code and resources)
    +-- build.gradle
+--settings.gradle
+--build.gradle

我更喜欢将我的所有子模块保存在一个目录(库)中,如果您愿意,可以将它们放在根目录中,这没有问题。您只需要更改 ypur 主模块的 settings.gradlebuild.gradle 中的路径,它们将它们作为其依赖项。

【讨论】:

  • 我的主要模块是 MainProgect。就这样发生了。
  • 不正确,你必须像其他子模块一样将它们全部放在一个模块中。
  • 查看我的编辑以了解项目结构。
  • 没有必要像那样重新设计项目结构。我相信您可以将主要项目放在根部;它不必位于根目录之外的子目录中。
  • @Scott Barta 哦,是吗,对不起,如果为什么回答,我从来没有经历过这个。我认为这可能是问题所在。
猜你喜欢
  • 1970-01-01
  • 2013-11-03
  • 1970-01-01
  • 2013-05-12
  • 2017-04-06
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
相关资源
最近更新 更多