Làm cách nào để xóa hoạt động khỏi ứng dụng? Dưới đây là một ví dụ đơn giản, tôi có một ứng dụng có hai hương vị sau (Trả tiền và Miễn phí). Ứng dụng nhỏ và chỉ có 3 hoạt động (MainActivity, ActivityOne và ActivityTwo). Các ứng dụng trả tiền không cần bất kỳ hạn chế vì nó sẽ sử dụng cơ sở mã đầy đủ. Tuy nhiên, ứng dụng miễn phí yêu cầu nó phải có MainActivity và ActivityTwo có thể truy cập được cho người dùng chứ không phải ActivityOne. Làm thế nào tôi có thể làm một "Manifest Merge" khi biên dịch mã để ActivityOne không có mặt trên phiên bản miễn phí? Nói cách khác làm thế nào nên src/free/AndroidManifest.xml được tạo để ứng dụng miễn phí không có ActivityOne?Android - Xóa hoạt động khỏi Flavour
Dưới đây là build.gradle tập tin cho các ứng dụng:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.example.calculator"
minSdkVersion 21
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
paid {
applicationId "com.example.paid"
resValue "string", "app_name", "Paid Calculator"
versionName "1.0-full"
}
free {
applicationId "com.example.free"
resValue "string", "app_name", "Free Calculator"
versionName "1.0-free"
}
}
sourceSets {
paid {
manifest.srcFile 'src/paid/AndroidManifest.xml'
}
free {
manifest.srcFile 'src/free/AndroidManifest.xml'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:cardview-v7:21.0.0'
compile 'com.android.support:recyclerview-v7:21.0.0'
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.0'
}
Dưới đây là file manifest cho ứng dụng Nó nằm ở src/main/AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.calculator">
<application
android:name="com.example.calculator.ui.activities.AppController"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:theme="@style/AppTheme">
<activity
android:name=".ui.activities.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.activities.ActivityOne"
android:label="@string/title_activity_one"
android:parentActivityName=".ui.activities.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ui.activities.MainActivity" />
</activity>
<activity
android:name=".ui.activities.ActivityTwo"
android:label="@string/title_activity_two"
android:parentActivityName=".ui.activities.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ui.activities.MainActivity" />
</activity>
</application>
</manifest>
Sử dụng các biến thể xây dựng – NaviRamyle