首页 > 解决方案 > 可以设置debug/AndroidManifest.xml

问题描述

安卓工作室 3.4

这是我的android应用程序结构:

在此处输入图像描述

我有 2 个buildTypes

debug

release

这里我的src/debug/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myapp">


    <application>
        <activity
            android:name="com.myapp.activity.CheckoutPaynetActivity_"
            android:screenOrientation="portrait"></activity>
    </application>
</manifest>

此清单文件仅包含增量。这是一项额外的活动。releasedebug 版本不同

在我的 app/buiil.gradle 中,我更改sourceSets为 AndroidManifest:

  buildTypes {
        release {

        }
        debug {

            sourceSets {
                 debug {
                     manifest.srcFile 'debug/AndroidManifest.xml'
                }
            }
            configBuildType(delegate, DEBUG_INSTANCE_NAME, DEBUG_APP_NAME, null, DEBUG_APPLICATION_PROFILE_URL)
            ext.betaDistributionReleaseNotes = defaultConfig.versionName + " " + name
        }
    }

gradlew assembleDebug但是当我通过AndroidManifest构建项目时不包含额外的活动 =CheckoutPaynetActivity_

我检查 apk 通过Android Studio ->Build -> Analize APK...

def configBuildType(buildType, instanceName, appName, appIdSuffix, appProfileURL) {    
    buildType.resValue("string", "app_name", appName)
    buildType.applicationIdSuffix(appIdSuffix)
    buildType.buildConfigField("String", "INSTANCE_NAME", instanceName)
    buildType.buildConfigField("String", "APPLICATION_PROFILE_URL", appProfileURL)
}

标签: androidgradleandroid-gradle-plugin

解决方案


在 app/build.gradle 中添加清单位置为。

 sourceSets {
            main {
                //java.srcDirs = ['src/main/java']
                aidl.srcDirs = ['src/main/aidl']
                renderscript.srcDirs = ['src/main/rs']
                jni.srcDirs = []
                jniLibs.srcDirs = []
                res.srcDirs = ['src/main/res']
                assets.srcDirs = []
                manifest.srcFile 'AndroidManifest.xml'
            }
            test{
                java.srcDirs = ['test']
            }
            debug {
                // note that is merged with the main manifest, so we only need to add the debug only part
                manifest.srcFile 'AndroidManifest-debug.xml'
            }

        }

推荐阅读