aapt --rename-manifest-package不适用于不同的AndroidManifest

时间:2015-07-26 09:29:06

标签: android aapt

我想构建两个版本的android应用程序:发布版本和使用不同包名称的测试。 我正在使用脚本来构建它。 首先,在AndroidManifest文件中生成资源类:

aapt package -m -J gen/ --rename-manifest-package <rekease.pkgname> -M ./AndroidManifest.xml -S res_test/ -I <path/to/android-13.jar>

这适用于生成测试版本。 之后,我尝试使用单独的AndroidManifest测试版,因为它有其他名称和包名。 首先,我将AndroidManifest.xml重命名为AndroidManifest_test.xml,并在-M选项中将其更改。

但是aapt是由猴子写的,这根本不起作用:

ERROR: No AndroidManifest.xml file found.

然后我将AndroidManifest放到单独的目录中并使用此命令:

aapt package -m -J gen/ --rename-manifest-package <release.pkgname> -M test/AndroidManifest.xml -S res_test/ -I </path/to/android-13.jar>

它创造了资源,但是没有--rename-manifest-package选项。 如何生成正确的类名?

1 个答案:

答案 0 :(得分:0)

使用新的Android Gradle构建系统,您可以轻松构建多个不同版本的应用程序;例如,您可以构建应用程序的“测试”版本和“专业版”(使用版本)。

您可以在gradle文件中指定应用程序ID(包名称)。您可以使用以下Gradle DSL方法改变应用程序的applicationId以获取flavor和build类型:

应用程序/的build.gradle:

productFlavors {
    pro {
        applicationId = "com.example.my.pkg.pro"
    }
    test {
        applicationId = "com.example.my.pkg.test"
    }
}

buildTypes {
    debug {
        applicationIdSuffix ".debug"
    }
}
....

请参阅this link了解详情。