如何使用自定义目录结构构建AndroidManifest.xml



我有一个这样的目录结构:

build.gradle
module/
build.gradle
pack/
AndroidManifest.xml
src/
com/
example/
sub/
main/
index.java
foo/
index.java
bar/
index.java

我一开始就不太确定这是对的(看起来有太多的顶级文件夹(。看起来应该更像这样:

build.gradle
AndroidManifest.xml
com/
example/
sub/
main/
index.java
foo/
index.java
bar/
index.java

理想情况下,我希望它是这样的:

build.gradle
AndroidManifest.xml
src/
main/
index.java
foo/
index.java
bar/
index.java

无论哪种方式,问题都是,如何编写AndroidManifest.xml,使其以处理main/index.java为起点。我现在有这个:

<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sub">
<application android:label="myproject">
<activity
android:name=".main"
android:label="myproject">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>

想知道我应该如何改变这三个部分:

<application android:label="myproject">
<activity
android:name=".main"
android:label="myproject">

我不希望像在res文件夹中那样创建xml资源文件,以保留名称等的strings.xml。如果可能的话,我只想把这个名字硬编码成the AndroidManifest.xml

还要注意,main/index.java文件包含一个类,例如MyActivity

据我所知,这是不可能的。这是默认的项目结构,您不能修改AndroidManifest.xml文件以拥有您的Android项目的自定义目录结构。

<application android:label="myproject">
<activity
android:name=".main"
android:label="myproject">

这里android:label的值是字符串资源。您可以在res/values/strings.xml(即recommended(中修改它们,也可以只在此处对它们进行硬编码和更新。

当您想要访问位于path中的index.javafile

src/
com/
example/
sub/
main/
index.java

您需要更改package名称,如下所示:-

<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sub.main">
<application android:label="myproject">
<activity
android:name=".index"
android:label="myproject">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>

参考:-为什么安卓工作室有这么多元数据文件?