From 8aae25868ebff05438646a24657706fa2e5aa925 Mon Sep 17 00:00:00 2001 From: shifujun Date: Tue, 28 Nov 2023 16:31:19 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E6=B5=8B=E8=AF=95multidex?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 和普通应用相比,需要额外在multiDexKeepProguard中添加对PluginManifest的keep。 在Android 4.4 API 19的虚拟机上可测试。 --- .../source/sample-plugin/sample-app/build.gradle | 9 +++++++++ .../sample-plugin/sample-app/multidex-config.pro | 2 ++ .../sample/plugin/app/lib/UseCaseApplication.java | 10 ++++++++++ 3 files changed, 21 insertions(+) create mode 100644 projects/sample/source/sample-plugin/sample-app/multidex-config.pro diff --git a/projects/sample/source/sample-plugin/sample-app/build.gradle b/projects/sample/source/sample-plugin/sample-app/build.gradle index 5bb93f01a..6d498eac3 100644 --- a/projects/sample/source/sample-plugin/sample-app/build.gradle +++ b/projects/sample/source/sample-plugin/sample-app/build.gradle @@ -28,8 +28,15 @@ android { targetSdkVersion project.TARGET_SDK_VERSION versionCode project.VERSION_CODE versionName project.VERSION_NAME + multiDexEnabled true + multiDexKeepProguard file('multidex-config.pro') } + dexOptions { + additionalParameters += '--minimal-main-dex'//为了测试Multidex能力 + } + + buildTypes { release { minifyEnabled true @@ -68,6 +75,8 @@ dependencies { //Shadow Transform后业务代码会有一部分实际引用runtime中的类 //如果不以compileOnly方式依赖,会导致其他Transform或者Proguard找不到这些类 pluginCompileOnly 'com.tencent.shadow.core:runtime' + + implementation 'androidx.multidex:multidex:2.0.1' } preBuild.dependsOn(":sample-host-lib:jarDebugPackage") diff --git a/projects/sample/source/sample-plugin/sample-app/multidex-config.pro b/projects/sample/source/sample-plugin/sample-app/multidex-config.pro new file mode 100644 index 000000000..37dd1416f --- /dev/null +++ b/projects/sample/source/sample-plugin/sample-app/multidex-config.pro @@ -0,0 +1,2 @@ +-keep class androidx.multidex.** +-keep class com.tencent.shadow.core.manifest_parser.PluginManifest \ No newline at end of file diff --git a/projects/sample/source/sample-plugin/sample-app/src/main/java/com/tencent/shadow/sample/plugin/app/lib/UseCaseApplication.java b/projects/sample/source/sample-plugin/sample-app/src/main/java/com/tencent/shadow/sample/plugin/app/lib/UseCaseApplication.java index 93c05284b..ae7bd2e64 100644 --- a/projects/sample/source/sample-plugin/sample-app/src/main/java/com/tencent/shadow/sample/plugin/app/lib/UseCaseApplication.java +++ b/projects/sample/source/sample-plugin/sample-app/src/main/java/com/tencent/shadow/sample/plugin/app/lib/UseCaseApplication.java @@ -3,6 +3,9 @@ import static com.tencent.shadow.sample.plugin.app.lib.gallery.cases.UseCaseManager.useCases; import android.app.Application; +import android.content.Context; + +import androidx.multidex.MultiDex; import com.tencent.shadow.sample.plugin.app.lib.gallery.cases.UseCaseManager; import com.tencent.shadow.sample.plugin.app.lib.gallery.cases.entity.UseCase; @@ -29,6 +32,13 @@ import com.tencent.shadow.sample.plugin.app.lib.usecases.webview.WebViewActivity; public class UseCaseApplication extends Application { + + @Override + protected void attachBaseContext(Context base) { + super.attachBaseContext(base); + MultiDex.install(this); + } + @Override public void onCreate() { super.onCreate();