从Intellij IDEA项目迁移到带有gradle的Android-studio

时间:2014-02-02 19:06:14

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

项目的结构

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')
            }

1 个答案:

答案 0 :(得分:0)

似乎build.gradle文件的内容是错误的。在Intellij的项目结构中,有一个项目可以在其中包含多个模块,一个模块可以依赖于其他模块,也可以拥有自己的依赖项,如jar。

正如评论中所确认的,您在问题中包含的build.gradle文件是root用户,这是不正确的。这应该是主模块的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

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