Android项目结构不正确;只有一个build.gradle

时间:2016-07-31 20:49:16

标签: android android-studio android-gradle

我的项目结构不正确。我需要一个顶级构建gradle,以及一个包含自己的build.gradle的同一级别的模块。

查看现在如何组织的图片。你看到的几乎是两个不同的级别合并在一起。build.gradle这里是项目中唯一的一个。{1}}。你看到的那个人注意到它是顶级版本。

enter image description here

解决这个问题的正确方法是什么?我需要重新进口还是可以重新组织?

其他信息,我安装了Gradle 2.10。

编辑:更多信息

通常我的顶级Gradle文件包含以下内容:

// Top-level build file where you can add configuration options common to all sub-projects/modules.


buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

但是在上面的设置中,没有第二个Gradle文件,我在哪里放置其他信息 ......例如:

apply plugin: 'com.android.application'


repositories {
    mavenCentral()
    maven {
        url "https://jitpack.io"
    }
}



android {

   defaultConfig {
       // edited
   }

    dependencies {
       // edited
    }


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

}

apply plugin: 'com.google.gms.google-services'

当我运行程序时,我收到此错误:

Error:A problem was found with the configuration of task ':checkDebugManifest'.
> File 'C:\--\src\main\AndroidManifest.xml' specified for property 'manifest' does not exist.

这有关系吗?

3 个答案:

答案 0 :(得分:2)

这种方式仍然是假设没有OP要求的额外模块的平面层次结构,但由于它基于我自己的Eclipse到AS迁移,我知道它对我来说很有用。

要识别eclipse默认值而不移动文件,您需要:

android {
  defaultConfig {

     sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            res.srcDirs = ['res']
        }
        test.java.srcDirs = ['src/test/java', 'build/generated/source/debug']
    }

这很可能允许您使用具有相同文件夹的eclipse和Android Studio。

第二种方法是不改变gradle而是移动文件夹,以便gradle找到预期的位置。

  1. 移动AndroidManifest.xml,它必须进入src/main
  2. res移至src/main/res
  3. src/com移至src/main/java/com(您可以确认当前com文件夹的位置吗?
  4. 您可以将文件移动或直接移动到他们所在的位置,这是您的选择 - 但不要同时执行这两项操作。我不记得的唯一步骤是build/generated/source/debug测试,我不记得我是否使用过,因为我使用groovy或者它是另一个eclipse maven / AS gradle mismatch。

答案 1 :(得分:1)

这是因为Gradle在默认位置查找AndroidManifest - > App/src/main/AndroidManifest.xml

enter image description here

您可以定义Gradle搜索AndroidManifest的位置。 How to tell Gradle to use a different AndroidManifest from the command line?

答案 2 :(得分:1)

选择" android"从下拉菜单而不是"项目"

This option