New issue
Advanced search Search tips

Issue 712852 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug

Blocking:
issue 710811



Sign in to add a comment

Release builds of chrome_public_test_apk breach the dex limit in some configurations

Project Member Reported by jbudorick@chromium.org, Apr 18 2017

Issue description

^^^

See https://bugs.chromium.org/p/chromium/issues/detail?id=710811 for internal context.

Release builds of our test APKs include the app code, which generally allows us to proguard our app APKs more aggresively. Our largest test APK just hit the dex limit because of this. Unfortunately, the multidex support library does not currently support multidex test APKs.
 

I have a hacky patch written that implements this support by:
 - loading the secondary dexes from the test APK before the Application is created
 - reordering the dex path list s.t. all test dexes precede all app dexes. (This reordering won't work in some build configurations, likely including debug, which I still need to rectify.)
 - adding a per-package BuildConfig equivalent, allowing multidex to be enabled for the test APK without enabling it for the app APK.

I'm hoping to clean up the patch & split it into 2 or 3 CLs over the next day or so.
First CL, which breaks multidex configuration into a per-package affair, is up for review: https://codereview.chromium.org/2834603006/
Project Member

Comment 3 by bugdroid1@chromium.org, Apr 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/026ed39fd157f3afe2a6315571ddbc1012f9061e

commit 026ed39fd157f3afe2a6315571ddbc1012f9061e
Author: jbudorick <jbudorick@chromium.org>
Date: Mon Apr 24 16:41:22 2017

[Android] Enable multidex for release builds of chrome_public_test_apk.

BUG= 712852 

Review-Url: https://codereview.chromium.org/2836723002
Cr-Commit-Position: refs/heads/master@{#466659}

[modify] https://crrev.com/026ed39fd157f3afe2a6315571ddbc1012f9061e/base/BUILD.gn
[modify] https://crrev.com/026ed39fd157f3afe2a6315571ddbc1012f9061e/base/android/java/src/org/chromium/base/BaseChromiumApplication.java
[modify] https://crrev.com/026ed39fd157f3afe2a6315571ddbc1012f9061e/base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java
[modify] https://crrev.com/026ed39fd157f3afe2a6315571ddbc1012f9061e/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java
[modify] https://crrev.com/026ed39fd157f3afe2a6315571ddbc1012f9061e/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumInstrumentationTestRunner.java
[add] https://crrev.com/026ed39fd157f3afe2a6315571ddbc1012f9061e/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumRunnerCommon.java
[add] https://crrev.com/026ed39fd157f3afe2a6315571ddbc1012f9061e/base/test/android/javatests/src/org/chromium/base/test/PackageManagerWrapper.java
[modify] https://crrev.com/026ed39fd157f3afe2a6315571ddbc1012f9061e/build/android/main_dex_classes.flags
[add] https://crrev.com/026ed39fd157f3afe2a6315571ddbc1012f9061e/build/android/multidex.flags
[modify] https://crrev.com/026ed39fd157f3afe2a6315571ddbc1012f9061e/build/config/android/rules.gni
[modify] https://crrev.com/026ed39fd157f3afe2a6315571ddbc1012f9061e/chrome/android/BUILD.gn

Status: Fixed (was: Started)
agrieve and I came up with a simpler solution than what I had originally proposed that doesn't involve per-package configurations.
Project Member

Comment 5 by bugdroid1@chromium.org, Apr 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/27f4fa45a207b4bd813a5c1bc5875e4696080a4c

commit 27f4fa45a207b4bd813a5c1bc5875e4696080a4c
Author: jbudorick <jbudorick@chromium.org>
Date: Mon Apr 24 22:19:40 2017

Revert of [Android] Enable multidex for release builds of chrome_public_test_apk. (patchset #4 id:60001 of https://codereview.chromium.org/2836723002/ )

Reason for revert:
Breaks on O.

Original issue's description:
> [Android] Enable multidex for release builds of chrome_public_test_apk.
>
> BUG= 712852 
>
> Review-Url: https://codereview.chromium.org/2836723002
> Cr-Commit-Position: refs/heads/master@{#466659}
> Committed: https://chromium.googlesource.com/chromium/src/+/026ed39fd157f3afe2a6315571ddbc1012f9061e

TBR=agrieve@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 712852 

Review-Url: https://codereview.chromium.org/2837123003
Cr-Commit-Position: refs/heads/master@{#466791}

[modify] https://crrev.com/27f4fa45a207b4bd813a5c1bc5875e4696080a4c/base/BUILD.gn
[modify] https://crrev.com/27f4fa45a207b4bd813a5c1bc5875e4696080a4c/base/android/java/src/org/chromium/base/BaseChromiumApplication.java
[modify] https://crrev.com/27f4fa45a207b4bd813a5c1bc5875e4696080a4c/base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java
[modify] https://crrev.com/27f4fa45a207b4bd813a5c1bc5875e4696080a4c/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java
[modify] https://crrev.com/27f4fa45a207b4bd813a5c1bc5875e4696080a4c/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumInstrumentationTestRunner.java
[delete] https://crrev.com/88c1201998461775ec1c604baa77c25c8023af8c/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumRunnerCommon.java
[delete] https://crrev.com/88c1201998461775ec1c604baa77c25c8023af8c/base/test/android/javatests/src/org/chromium/base/test/PackageManagerWrapper.java
[modify] https://crrev.com/27f4fa45a207b4bd813a5c1bc5875e4696080a4c/build/android/main_dex_classes.flags
[delete] https://crrev.com/88c1201998461775ec1c604baa77c25c8023af8c/build/android/multidex.flags
[modify] https://crrev.com/27f4fa45a207b4bd813a5c1bc5875e4696080a4c/build/config/android/rules.gni
[modify] https://crrev.com/27f4fa45a207b4bd813a5c1bc5875e4696080a4c/chrome/android/BUILD.gn

Status: Started (was: Fixed)
Project Member

Comment 8 by bugdroid1@chromium.org, Apr 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/78730f18fc734d034e44d0dc63091562be82edae

commit 78730f18fc734d034e44d0dc63091562be82edae
Author: jbudorick <jbudorick@chromium.org>
Date: Wed Apr 26 21:24:22 2017

[Android] Enable multidex for release builds of chrome_public_test_apk. (RELAND)

BUG= 712852 

Review-Url: https://codereview.chromium.org/2839983002
Cr-Commit-Position: refs/heads/master@{#467462}

[modify] https://crrev.com/78730f18fc734d034e44d0dc63091562be82edae/DEPS
[modify] https://crrev.com/78730f18fc734d034e44d0dc63091562be82edae/base/BUILD.gn
[modify] https://crrev.com/78730f18fc734d034e44d0dc63091562be82edae/base/android/java/src/org/chromium/base/BaseChromiumApplication.java
[modify] https://crrev.com/78730f18fc734d034e44d0dc63091562be82edae/base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java
[modify] https://crrev.com/78730f18fc734d034e44d0dc63091562be82edae/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java
[modify] https://crrev.com/78730f18fc734d034e44d0dc63091562be82edae/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumInstrumentationTestRunner.java
[add] https://crrev.com/78730f18fc734d034e44d0dc63091562be82edae/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumRunnerCommon.java
[modify] https://crrev.com/78730f18fc734d034e44d0dc63091562be82edae/build/android/main_dex_classes.flags
[add] https://crrev.com/78730f18fc734d034e44d0dc63091562be82edae/build/android/multidex.flags
[modify] https://crrev.com/78730f18fc734d034e44d0dc63091562be82edae/build/config/android/rules.gni
[modify] https://crrev.com/78730f18fc734d034e44d0dc63091562be82edae/build/secondary/third_party/android_tools/BUILD.gn
[modify] https://crrev.com/78730f18fc734d034e44d0dc63091562be82edae/chrome/android/BUILD.gn

Project Member

Comment 9 by bugdroid1@chromium.org, Apr 26 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/third_party/android_tools/+/601b202d46e2f67b472f1f0e31bca30bbdef4c5c

commit 601b202d46e2f67b472f1f0e31bca30bbdef4c5c
Author: John Budorick <jbudorick@google.com>
Date: Tue Apr 25 14:10:00 2017

Project Member

Comment 10 by bugdroid1@chromium.org, Apr 26 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/third_party/android_tools/+/601b202d46e2f67b472f1f0e31bca30bbdef4c5c

commit 601b202d46e2f67b472f1f0e31bca30bbdef4c5c
Author: John Budorick <jbudorick@google.com>
Date: Tue Apr 25 14:10:00 2017

Project Member

Comment 11 by bugdroid1@chromium.org, Apr 27 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/internal/apps/+/339f8d1cd8a1a95867d4f328107db5a3b4b2b6f6

commit 339f8d1cd8a1a95867d4f328107db5a3b4b2b6f6
Author: John Budorick <jbudorick@google.com>
Date: Thu Apr 27 00:39:03 2017

Status: Fixed (was: Started)
Project Member

Comment 13 by bugdroid1@chromium.org, May 5 2017

Labels: merge-merged-3071
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/654894f8b0de9c8df52f701a95c3c2514b2715c4

commit 654894f8b0de9c8df52f701a95c3c2514b2715c4
Author: John Budorick <jbudorick@chromium.org>
Date: Fri May 05 22:40:08 2017

[Android] Enable multidex for release builds of chrome_public_test_apk. (RELAND)

cherry pick to M59

BUG= 712852 

(cherry picked from commit 78730f18fc734d034e44d0dc63091562be82edae)

Review-Url: https://codereview.chromium.org/2868593002 .
Cr-Commit-Position: refs/branch-heads/3071@{#426}
Cr-Branched-From: a106f0abbf69dad349d4aaf4bcc4f5d376dd2377-refs/heads/master@{#464641}

[modify] https://crrev.com/654894f8b0de9c8df52f701a95c3c2514b2715c4/DEPS
[modify] https://crrev.com/654894f8b0de9c8df52f701a95c3c2514b2715c4/base/BUILD.gn
[modify] https://crrev.com/654894f8b0de9c8df52f701a95c3c2514b2715c4/base/android/java/src/org/chromium/base/BaseChromiumApplication.java
[modify] https://crrev.com/654894f8b0de9c8df52f701a95c3c2514b2715c4/base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java
[modify] https://crrev.com/654894f8b0de9c8df52f701a95c3c2514b2715c4/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java
[modify] https://crrev.com/654894f8b0de9c8df52f701a95c3c2514b2715c4/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumInstrumentationTestRunner.java
[add] https://crrev.com/654894f8b0de9c8df52f701a95c3c2514b2715c4/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumRunnerCommon.java
[modify] https://crrev.com/654894f8b0de9c8df52f701a95c3c2514b2715c4/build/android/main_dex_classes.flags
[add] https://crrev.com/654894f8b0de9c8df52f701a95c3c2514b2715c4/build/android/multidex.flags
[modify] https://crrev.com/654894f8b0de9c8df52f701a95c3c2514b2715c4/build/config/android/rules.gni
[modify] https://crrev.com/654894f8b0de9c8df52f701a95c3c2514b2715c4/build/secondary/third_party/android_tools/BUILD.gn
[modify] https://crrev.com/654894f8b0de9c8df52f701a95c3c2514b2715c4/chrome/android/BUILD.gn

Project Member

Comment 14 by bugdroid1@chromium.org, May 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d722433f871ba515de4c0e9a55b1803be4a6f1c6

commit d722433f871ba515de4c0e9a55b1803be4a6f1c6
Author: jbudorick <jbudorick@chromium.org>
Date: Sun May 07 18:20:05 2017

[Android] Suppress the old and the new SharedPrefs.commit() lint warnings.

BUG= 712852 
TBR=amineer@chromium.org

Review-Url: https://codereview.chromium.org/2866953002
Cr-Commit-Position: refs/heads/master@{#469901}

[modify] https://crrev.com/d722433f871ba515de4c0e9a55b1803be4a6f1c6/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ApplicationData.java

Project Member

Comment 15 by bugdroid1@chromium.org, May 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ef3e4cde2a9d61434011620ed2bfdc12bdc8b5ca

commit ef3e4cde2a9d61434011620ed2bfdc12bdc8b5ca
Author: John Budorick <jbudorick@chromium.org>
Date: Sun May 07 18:23:13 2017

[Android] Suppress the old and the new SharedPrefs.commit() lint warnings.

cherry-pick to M59
(cherry picked from commit d722433f871ba515de4c0e9a55b1803be4a6f1c6)

BUG= 712852 
TBR=amineer@chromium.org

Review-Url: https://codereview.chromium.org/2866973002 .
Cr-Commit-Position: refs/branch-heads/3071@{#439}
Cr-Branched-From: a106f0abbf69dad349d4aaf4bcc4f5d376dd2377-refs/heads/master@{#464641}

[modify] https://crrev.com/ef3e4cde2a9d61434011620ed2bfdc12bdc8b5ca/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ApplicationData.java

Sign in to add a comment