我的项目结构不正确。我需要一个顶级构建gradle,以及一个包含自己的build.gradle
的同一级别的模块。
查看现在如何组织的图片。你看到的几乎是两个不同的级别合并在一起。build.gradle
这里是项目中唯一的一个。{1}}。你看到的那个人注意到它是顶级版本。
解决这个问题的正确方法是什么?我需要重新进口还是可以重新组织?
其他信息,我安装了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.
这有关系吗?
答案 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找到预期的位置。
src/main
res
移至src/main/res
src/com
移至src/main/java/com
(您可以确认当前com
文件夹的位置吗?您可以将文件移动或直接移动到他们所在的位置,这是您的选择 - 但不要同时执行这两项操作。我不记得的唯一步骤是build/generated/source/debug
测试,我不记得我是否使用过,因为我使用groovy或者它是另一个eclipse maven / AS gradle mismatch。
答案 1 :(得分:1)
这是因为Gradle在默认位置查找AndroidManifest - > App/src/main/AndroidManifest.xml
您可以定义Gradle搜索AndroidManifest
的位置。
How to tell Gradle to use a different AndroidManifest from the command line?
答案 2 :(得分:1)
选择" android"从下拉菜单而不是"项目"