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

时间:2018-08-08 04:20:27

标签: android android-manifest

我有这样的目录结构:

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之类的类。

2 个答案:

答案 0 :(得分:0)

您要访问位于index.java上的file path

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>

参考:-{Why so many metadata files in Android studio?

答案 1 :(得分:0)

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

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

此处android:label的值是字符串资源。您可以在res/values/strings.xml的{​​{1}}中对其进行修改,也可以对其进行硬编码并仅在此处进行更新。