0

Android Studio 3.4

Here my android app structure:

enter image description here

I has 2 buildTypes:

debug

and

release

Here my 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>

This manifest file contain only delta. It's one additional activity. It's different between release and debug version

In my app/buiil.gradle I change sourceSets for 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
        }
    }

But when I build project by gradlew assembleDebug the AndroidManifest not contain additional activity = CheckoutPaynetActivity_

I check apk by 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)
}
Alexei
  • 14,350
  • 37
  • 121
  • 240

1 Answers1

0

Add manifest location in app/build.gradle as.

 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'
            }

        }
Ranjan Kumar
  • 1,164
  • 7
  • 12