Android 如何为发布版本和调试版本提供不同的清单文件?
在Android Studio中,我的APK的调试版本和发布版本可能有不同的清单文件吗 通常我不需要这样的东西,但在调试模式下,我的应用程序在不同的用户id和进程中运行,这在清单中定义。我已附加了调试清单的差异:Android 如何为发布版本和调试版本提供不同的清单文件?,android,android-studio,apk,android-gradle-plugin,Android,Android Studio,Apk,Android Gradle Plugin,在Android Studio中,我的APK的调试版本和发布版本可能有不同的清单文件吗 通常我不需要这样的东西,但在调试模式下,我的应用程序在不同的用户id和进程中运行,这在清单中定义。我已附加了调试清单的差异: --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,5 +1,6 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,5 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mridang.address"
+ android:sharedUserId="com.mridang.dashclock"
android:versionCode="10"
android:versionName="1.0" >
@@ -14,6 +15,7 @@
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
+ android:process="com.mridang.dashclock"
android:label="@string/application_name"
android:theme="@android:style/Theme.Holo.Light.DarkActionBar" >
——a/AndroidManifest.xml
+++b/AndroidManifest.xml
@@ -1,5 +1,6 @@
@@ -14,6 +15,7 @@
在构建之前,我会将调试清单文件隐藏起来并弹出它,如果有两个单独的清单,那就太好了。在src/下创建一个“debug”文件夹,并将其放在那里:
我的“release”清单在src/main/中,但我很确定如果您需要两个完全独立的清单文件,您可以使用src/release/和src/debug/是的,这是可能的。使用以下路径: 调试清单:../src/Debug/AndroidManifest.xml 发布清单:../src/Release/AndroidManifest.xml
在Android Studio上显示发布清单:
对于我们这些在应用程序中有变体并且仍然需要自定义调试清单以便在变体中使用的人,以下信息可能会有所帮助:
src/debug
文件夹中,然后所有变量的清单都将覆盖此清单。如果希望调试清单仅应用于特定的变量,则应将其放在src/variantnameDebug/AndroidManifest.xml
这里有关于这个合并的详细文档:这个例子看起来非常有用。Android会自动合并这两个清单吗?还是我需要修改Gradle配置中的某些内容?这个例子正是我需要的,因为看起来我不需要两个单独的清单,只需要不同的部分。@MridangAgarwalla:“Android会自动合并这两个清单吗”——是的。“看起来我不需要两个单独的清单,只需要不同的部分”——可能吧。清单合并很复杂,因此,根据您试图执行的操作,您可能需要向Gradle for Android提供更多帮助:我只在app/build.Gradle文件中定义调试{}和发布{}构建类型。@commonware:我刚刚尝试过,看起来清单是自动合并的。我没有得到
INSTALL\u FAILED\u UID\u CHANGED
错误,APK工作正常。Android Studio 1.4只显示debug
清单,但release
没有