缺少Android工作室中的主模块

时间:2014-04-16 16:49:31

标签: android gradle android-studio

我正在尝试将我的Android应用程序从eclipse迁移到Android工作室。 (0.5.4) 该项目有几个依赖项。 (Sherlock等) 我将应用程序导出到Gradle并将其导入Android工作室并设法成功构建项目。

然而,似乎只构建了依赖关系。 在应用程序代码中添加错误行不会触发编译错误。

当我查看项目时|包,我的应用程序包没有显示,只显示外部库。

我的根级build.gradle只包含存储库和依赖项:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.2'
    }

我尝试手动添加一个android部分,目的是让gradle查看源文件但是我在添加部分时遇到了问题:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.2'
    }
    android {
        compileSdkVersion 17
        buildToolsVersion "19.0.2"
    }

因为我现在收到以下错误

  

无法在根项目'zzz'上找到参数xxx的方法android()。

如果继续添加

apply plugin: 'android'

就在android部分之前,但现在我得到了

  

评估根项目'zzz'时出现问题。   没有找到id'android'的插件。

任何人都可以解释为什么我不能在根级别拥有Android部分。 如果问题出在其他地方,那么任何帮助也会受到高度赞赏。

如果需要,这是我的settings.gradle

include ':external:PullToRefresh:SmoothProgressBarLib'
include ':external:ActionBarSherlock'
include ':'
include ':external:pulltorefresh-abs'
include ':external:MyAwesomeLibrary'
include ':external:PullToRefresh:pulltorefresh'
include ':external:SherlockNavigationDrawer'
include ':external:sdk:MyAwesomeSDK'

2 个答案:

答案 0 :(得分:5)

您在顶级构建文件的android块中包含了buildscript块,但这不正确。相反,它的结构应该是这样的:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.2'
    }
}

apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 17
    buildToolsVersion "19.0.2"
}

dependencies {
    //Your app dependencies go here
}

所有这一切都假设您在项目根目录中确实拥有一个Android应用程序模块(这意味着在您的项目根目录中有一个 src 目录,其中包含Android源代码)。似乎是你试图以这种方式设置它,因为你在settings.gradle文件中也有这个:

include ':'

如果是这种情况,那么重新排列上面指出的顶级构建文件应该会修复它。

如果项目根目录中没有模块,那么您应该将顶级构建文件恢复到原始状态(取出apply pluginandroid),取出{来自 settings.gradle 的{1}}行,并添加指向您的应用程序模块的include ':'语句。

答案 1 :(得分:0)

settings.gradle 文件中,我看不到您包含主模块的位置。你应该添加:

include ':mainmodule-directory'

理想情况下,您的项目应该有两个 build.gradle 文件。一个在根级别,一个在模块级别。在主模块中,通过在模块的 build.gradle 文件中添加apply plugin: android来指定模块是Android模块。然后在root build.gradle 文件中使用以下内容指定整个项目需要Android插件:

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