android/source/build.gradle | 6 +++++- android/source/src/java/org/libreoffice/LibreOfficeApplication.java | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-)
New commits: commit 037680488b56aa2c4eb21900168aa88ef35d5b07 Author: Michael Weghorn <[email protected]> AuthorDate: Tue Dec 27 12:51:54 2022 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Wed Dec 28 08:28:48 2022 +0000 android: Enable multidex, update com.google.android.material to 1.7.0 Release notes: https://github.com/material-components/material-components-android/releases/tag/1.7.0 With the material update in place, multidex needs to be enabled since the app has minSdkVersion 16 (i.e. smaller than 21) and now references more then 65,536 methods, see [1] for more background. Therefore, carry out the changes to support multidex as mentioned in [2]. Without enabling multidex, the build would fail like this: > Task :mergeExtDexStrippedUIDebug FAILED ERROR:D8: Cannot fit requested classes in a single dex file (# methods: 68864 > 65536) com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:151) at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:138) at com.android.build.gradle.internal.tasks.DexMergingWorkAction.merge(DexMergingTask.kt:859) at com.android.build.gradle.internal.tasks.DexMergingWorkAction.run(DexMergingTask.kt:805) at com.android.build.gradle.internal.profile.ProfileAwareWorkAction.execute(ProfileAwareWorkAction.kt:74) at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63) at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66) at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62) at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:97) at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41) at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59) at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$2(DefaultWorkerExecutor.java:205) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:187) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:120) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:162) at org.gradle.internal.Factories$1.create(Factories.java:31) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:270) at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:119) at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:124) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:157) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:126) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) [1] https://developer.android.com/studio/build/multidex [2] https://developer.android.com/studio/build/multidex#mdex-gradle Change-Id: Ie5d78a54e7f69b55586d80718c04e71526ebad6f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144838 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/android/source/build.gradle b/android/source/build.gradle index 37239d214f70..2b6d566148ba 100644 --- a/android/source/build.gradle +++ b/android/source/build.gradle @@ -26,8 +26,9 @@ dependencies { "libreoffice.jar", "unoloader.jar" ]) - implementation 'com.google.android.material:material:1.6.1' + implementation 'com.google.android.material:material:1.7.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + implementation "androidx.multidex:multidex:2.0.1" } android { @@ -49,6 +50,9 @@ android { defaultConfig { minSdkVersion 16 targetSdkVersion 33 + // multidex needed when > 65,536 methods referenced with minSdKVersion < 21 + // s. https://developer.android.com/studio/build/multidex + multiDexEnabled true vectorDrawables.useSupportLibrary = true } buildTypes { diff --git a/android/source/src/java/org/libreoffice/LibreOfficeApplication.java b/android/source/src/java/org/libreoffice/LibreOfficeApplication.java index cb79219fc999..ebe54cf27c64 100644 --- a/android/source/src/java/org/libreoffice/LibreOfficeApplication.java +++ b/android/source/src/java/org/libreoffice/LibreOfficeApplication.java @@ -10,11 +10,11 @@ package org.libreoffice; -import android.app.Application; import android.content.Context; import android.os.Handler; +import androidx.multidex.MultiDexApplication; -public class LibreOfficeApplication extends Application { +public class LibreOfficeApplication extends MultiDexApplication { private static Handler mainHandler;
