Android Studio的gradle插件如何管理资源文件(AndroidManifest.xml)?

7
我有一个名为build.gradle的项目文件位于myApp/app/目录中。AndroidManifest.xml位于myApp/app/src/main目录下,与java/res/目录在同一级别。
当我同步这个项目时,我会收到有关缺少清单文件的通知。实际上,这并不奇怪,因为路径确实不正确。源文件设置为:
    sourceSets {
    main {
        manifest.srcFile 'src/main/AndroidManifest.xml'
    }
}

错误通知如下:

Error:Cause: java.io.FileNotFoundException: /home/aqv/AndroidStudioProjects/myApp/src/main/AndroidManifest.xml(没有这个文件或目录)

当我将源更改为:

sourceSets {
    main {
        manifest.srcFile 'main/AndroidManifest.xml'
    }
}

文本变成了:

错误: 原因: java.io.FileNotFoundException: /home/aqv/AndroidStudioProjects/myApp/app/main/AndroidManifest.xml(没有这样的文件或目录)

正如您所看到的,路径片段丢失了:myApp/app/src/(设置src/main/AndroidManifest.xml路径时,错误指出在myApp/src/main中查找清单文件,因此省略了app/目录)。

这是Gradle的一种bug还是我的项目配置不正确?寻找解决方案时我在SO上找到了一个线程,但那里的解决方案在我的情况下不起作用。我的依赖关系设置为:

compile 'com.android.support:support-v4:19.1.0'
compile 'com.android.support:appcompat-v7:19.1.0'

1
你修改了根目录下的 build.gradle 而不是 app/build.gradle 吗? - Eugen Martynov
是的,那就是解决方案!谢谢,伙计!请将其添加为答案,以便我可以点赞并关闭该线程。 - AbreQueVoy
1个回答

8
撰写答案可能对某些人也是问题。
默认情况下,Android Studio创建多模块项目。因此,在您的项目的根文件夹中有一个build.gradle,并且在app文件夹中有另一个build.gradle
<your project name>
/app
   /src
   build.gradle
build.gradle
settings.gradle

通常情况下,如果您想要为所有子项目指定默认设置,则会编辑父级build.gradle。由于当前只有一个子项目,这看起来很奇怪。
话题发起人的问题是他正在添加/修改根build.gradle而不是app文件夹下的build.gradle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接