diff options
author | vasilii <vasilii@chromium.org> | 2016-01-15 02:18:45 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-15 10:19:30 +0000 |
commit | ac74e7a74cd2e700b1953f0542c09a72c672b1b1 (patch) | |
tree | fadc6afd337641f19b75cc5aff33ca5038c39ef6 | |
parent | f795671d8c34bc15ae30a005d38d0a4f5b9fae11 (diff) | |
download | chromium_src-ac74e7a74cd2e700b1953f0542c09a72c672b1b1.zip chromium_src-ac74e7a74cd2e700b1953f0542c09a72c672b1b1.tar.gz chromium_src-ac74e7a74cd2e700b1953f0542c09a72c672b1b1.tar.bz2 |
Revert of [Android] Rework multidex and enable multidex for unit_tests_apk. (patchset #7 id:120001 of https://codereview.chromium.org/1581563003/ )
Reason for revert:
Broke compilation on Android
https://build.chromium.org/p/chromium/builders/Android/builds/50665
FAILED: cd ../../components; python ../build/android/gyp/apk_obfuscate.py --configuration-name Release --android-sdk /b/build/slave/Android/build/src/third_party/android_tools/sdk//platforms/android-23 --android-sdk-tools /b/build/slave/Android/build/src/third_party/android_tools/sdk//build-tools/23.0.1 --android-sdk-jar /b/build/slave/Android/build/src/third_party/android_tools/sdk//platforms/android-23/android.jar "--input-jars-paths=/b/build/slave/Android/build/src/third_party/android_tools/sdk//extras/android/support/multidex/library/libs/android-support-multidex.jar \"../out/Release/lib.java/jsr_305_javalib.jar\" \"../out/Release/lib.java/base_java.jar\" /b/build/slave/Android/build/src/third_party/android_tools/sdk//extras/android/support/annotations/android-support-annotations.jar \"../out/Release/lib.java/cronet_api.jar\" \"../out/Release/lib.java/url_java.jar\" \"../out/Release/lib.java/net_java.jar\" \"../out/Release/lib.java/cronet_java.jar\" \"../out/Release/lib.java/chromium_apk_cronet_perf_test_apk.jar\"" "--proguard-configs=cronet/android/proguard.cfg \"../out/Release/cronet_perf_test_apk/proguard.txt\"" --test-jar-path ../out/Release/test.lib.java/CronetPerfTest.jar --obfuscated-jar-path ../out/Release/cronet_perf_test_apk/obfuscated.jar --proguard-jar-path ../third_party/proguard/lib/proguard.jar --stamp ../out/Release/cronet_perf_test_apk/obfuscate.stamp --testapp --proguard-enabled
Traceback (most recent call last):
File "../build/android/gyp/apk_obfuscate.py", line 185, in <module>
sys.exit(main(sys.argv[1:]))
File "../build/android/gyp/apk_obfuscate.py", line 167, in main
DoProguard(options)
File "../build/android/gyp/apk_obfuscate.py", line 124, in DoProguard
proguard.CheckOutput()
File "/b/build/slave/Android/build/src/build/android/gyp/util/proguard_util.py", line 180, in CheckOutput
stderr_filter=stderr_filter)
File "/b/build/slave/Android/build/src/build/android/gyp/util/build_utils.py", line 162, in CheckOutput
raise CalledProcessError(cwd, args, stdout + stderr)
util.build_utils.CalledProcessError: Command failed: ( cd /b/build/slave/Android/build/src/components; java -jar ../third_party/proguard/lib/proguard.jar -forceprocessing -libraryjars /b/build/slave/Android/build/src/third_party/android_tools/sdk//platforms/android-23/android.jar -injars /b/build/slave/Android/build/src/third_party/android_tools/sdk//extras/android/support/multidex/library/libs/android-support-multidex.jar:../out/Release/lib.java/jsr_305_javalib.jar:../out/Release/lib.java/base_java.jar:/b/build/slave/Android/build/src/third_party/android_tools/sdk//extras/android/support/annotations/android-support-annotations.jar:../out/Release/lib.java/cronet_api.jar:../out/Release/lib.java/url_java.jar:../out/Release/lib.java/net_java.jar:../out/Release/lib.java/cronet_java.jar:../out/Release/lib.java/chromium_apk_cronet_perf_test_apk.jar -include cronet/android/proguard.cfg -include ../out/Release/cronet_perf_test_apk/proguard.txt -outjars ../out/Release/cronet_perf_test_apk/obfuscated.jar -dump ../out/Release/cronet_perf_test_apk/obfuscated.jar.dump -printseeds ../out/Release/cronet_perf_test_apk/obfuscated.jar.seeds -printusage ../out/Release/cronet_perf_test_apk/obfuscated.jar.usage -printmapping ../out/Release/cronet_perf_test_apk/obfuscated.jar.mapping )
Warning: org.chromium.base.multidex.ChromiumMultiDexInstaller: can't find referenced class org.chromium.base.multidex.ChromiumMultiDex
Warning: org.chromium.base.multidex.ChromiumMultiDexInstaller: can't find referenced class org.chromium.base.multidex.ChromiumMultiDex
Warning: there were 2 unresolved references to classes or interfaces.
You may need to specify additional library jars (using '-libraryjars').
Error: Please correct the above warnings first.
Original issue's description:
> [Android] Rework multidex and enable multidex for unit_tests_apk.
>
> This allows multidex to be used in release builds.
>
> BUG=272790
>
> Committed: https://crrev.com/f743bef34d49987c0f1f69e2f0bb6cb8beb03bf5
> Cr-Commit-Position: refs/heads/master@{#369715}
TBR=phajdan.jr@chromium.org,agrieve@chromium.org,dpranke@chromium.org,thakis@chromium.org,yfriedman@chromium.org,jbudorick@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=272790
Review URL: https://codereview.chromium.org/1587253003
Cr-Commit-Position: refs/heads/master@{#369717}
-rw-r--r-- | base/BUILD.gn | 9 | ||||
-rw-r--r-- | base/android/java/src/org/chromium/base/BaseChromiumApplication.java | 4 | ||||
-rw-r--r-- | base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java | 114 | ||||
-rw-r--r-- | base/android/java/templates/ChromiumMultiDex.template | 113 | ||||
-rw-r--r-- | base/base.gyp | 14 | ||||
-rw-r--r-- | base/test/android/javatests/src/org/chromium/base/test/BaseInstrumentationTestRunner.java | 4 | ||||
-rwxr-xr-x | build/android/gyp/configure_multidex.py | 50 | ||||
-rw-r--r-- | build/android/java_cpp_template.gypi | 2 | ||||
-rw-r--r-- | build/config/android/rules.gni | 15 | ||||
-rw-r--r-- | build/java_apk.gypi | 50 | ||||
-rw-r--r-- | chrome/chrome_tests_unit.gypi | 1 | ||||
-rw-r--r-- | chrome/test/BUILD.gn | 1 | ||||
-rw-r--r-- | testing/android/native_test/java/src/org/chromium/native_test/NativeTestActivity.java | 3 | ||||
-rw-r--r-- | testing/test.gni | 1 |
14 files changed, 137 insertions, 244 deletions
diff --git a/base/BUILD.gn b/base/BUILD.gn index 1265df8..5d8510f 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn @@ -2057,10 +2057,9 @@ if (is_android) { DEPRECATED_java_in_dir = "android/java/src" - # New versions of ChromiumMultiDex.java and NativeLibraries.java - # (with the actual correct values) will be created when creating an apk. + # A new version of NativeLibraries.java (with the actual correct values) + # will be created when creating an apk. jar_excluded_patterns = [ - "*/ChromiumMultiDex.class", "*/NativeLibraries.class", "*/NativeLibraries##*.class", ] @@ -2095,7 +2094,6 @@ if (is_android) { "//third_party/robolectric:android-all-4.3_r2-robolectric-0", "//third_party/robolectric:robolectric_java", ] - srcjar_deps = [ ":base_multidex_gen" ] } # GYP: //base.gyp:base_junit_tests @@ -2130,6 +2128,9 @@ if (is_android) { sources = [ "android/java/templates/ChromiumMultiDex.template", ] + if (is_debug) { + defines = [ "MULTIDEX_CONFIGURATION_Debug" ] + } package_name = "org/chromium/base/multidex" } diff --git a/base/android/java/src/org/chromium/base/BaseChromiumApplication.java b/base/android/java/src/org/chromium/base/BaseChromiumApplication.java index f842a18..e4e6e20 100644 --- a/base/android/java/src/org/chromium/base/BaseChromiumApplication.java +++ b/base/android/java/src/org/chromium/base/BaseChromiumApplication.java @@ -10,7 +10,7 @@ import android.content.Context; import android.os.Bundle; import android.view.Window; -import org.chromium.base.multidex.ChromiumMultiDexInstaller; +import org.chromium.base.multidex.ChromiumMultiDex; /** * Basic application functionality that should be shared among all browser applications. @@ -31,7 +31,7 @@ public class BaseChromiumApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); - ChromiumMultiDexInstaller.install(this); + ChromiumMultiDex.install(this); } /** diff --git a/base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java b/base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java deleted file mode 100644 index e4b30b9..0000000 --- a/base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.base.multidex; - -import android.app.ActivityManager; -import android.app.ActivityManager.RunningAppProcessInfo; -import android.content.Context; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManager; -import android.os.Build; -import android.support.multidex.MultiDex; - -import org.chromium.base.Log; -import org.chromium.base.VisibleForTesting; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -/** - * Performs multidex installation for non-isolated processes. - */ -public class ChromiumMultiDexInstaller { - - private static final String TAG = "base_multidex"; - - /** - * Suffix for the meta-data tag in the AndroidManifext.xml that determines whether loading - * secondary dexes should be skipped for a given process name. - */ - private static final String IGNORE_MULTIDEX_KEY = ".ignore_multidex"; - - /** - * Installs secondary dexes if possible/necessary. - * - * Isolated processes (e.g. renderer processes) can't load secondary dex files on - * K and below, so we don't even try in that case. - * - * In release builds of app apks (as opposed to test apks), this is a no-op because: - * - multidex isn't necessary in release builds because we run proguard there and - * thus aren't threatening to hit the dex limit; and - * - calling MultiDex.install, even in the absence of secondary dexes, causes a - * significant regression in start-up time (crbug.com/525695). - * - * @param context The application context. - */ - @VisibleForTesting - public static void install(Context context) { - if (!ChromiumMultiDex.isMultidexEnabled()) return; - - // TODO(jbudorick): Back out this version check once support for K & below works. - // http://crbug.com/512357 - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP - && !shouldInstallMultiDex(context)) { - Log.i(TAG, "Skipping multidex installation: not needed for process."); - } else { - MultiDex.install(context); - Log.i(TAG, "Completed multidex installation."); - } - } - - private static String getProcessName(Context context) { - try { - String currentProcessName = null; - int pid = android.os.Process.myPid(); - - ActivityManager manager = - (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); - for (RunningAppProcessInfo processInfo : manager.getRunningAppProcesses()) { - if (processInfo.pid == pid) { - currentProcessName = processInfo.processName; - break; - } - } - - return currentProcessName; - } catch (SecurityException ex) { - return null; - } - } - - // Determines whether MultiDex should be installed for the current process. Isolated - // Processes should skip MultiDex as they can not actually access the files on disk. - // Privileged processes need ot have all of their dependencies in the MainDex for - // performance reasons. - private static boolean shouldInstallMultiDex(Context context) { - try { - Method isIsolatedMethod = - android.os.Process.class.getMethod("isIsolated"); - Object retVal = isIsolatedMethod.invoke(null); - if (retVal != null && retVal instanceof Boolean && ((Boolean) retVal)) { - return false; - } - } catch (IllegalAccessException | IllegalArgumentException - | InvocationTargetException | NoSuchMethodException e) { - // Ignore and fall back to checking the app processes. - } - - String currentProcessName = getProcessName(context); - if (currentProcessName == null) return true; - - PackageManager packageManager = context.getPackageManager(); - try { - ApplicationInfo appInfo = packageManager.getApplicationInfo(context.getPackageName(), - PackageManager.GET_META_DATA); - if (appInfo == null || appInfo.metaData == null) return true; - return !appInfo.metaData.getBoolean(currentProcessName + IGNORE_MULTIDEX_KEY, false); - } catch (PackageManager.NameNotFoundException e) { - return true; - } - } - -} diff --git a/base/android/java/templates/ChromiumMultiDex.template b/base/android/java/templates/ChromiumMultiDex.template index 7e70701..5580489 100644 --- a/base/android/java/templates/ChromiumMultiDex.template +++ b/base/android/java/templates/ChromiumMultiDex.template @@ -4,22 +4,115 @@ package org.chromium.base.multidex; +import android.app.ActivityManager; +import android.app.ActivityManager.RunningAppProcessInfo; +import android.content.Context; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.os.Build; +import android.os.Process; +import android.support.multidex.MultiDex; + +import org.chromium.base.Log; +import org.chromium.base.VisibleForTesting; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + /** - * Multidex configuration. Generated on a per-target basis. + * Performs multidex installation for non-isolated processes. */ -class ChromiumMultiDex { +public class ChromiumMultiDex { - /** Whether multidex is enabled for this target. + private static final String TAG = "base_multidex"; + + /** + * Suffix for the meta-data tag in the AndroidManifext.xml that determines whether loading + * secondary dexes should be skipped for a given process name. + */ + private static final String IGNORE_MULTIDEX_KEY = ".ignore_multidex"; + + /** + * Installs secondary dexes if possible/necessary. + * + * Isolated processes (e.g. renderer processes) can't load secondary dex files on + * K and below, so we don't even try in that case. * - * This has to be a function instead of a static final boolean s.t. the initial false value - * doesn't get optimized into {@link ChromiumMultiDexInstaller} at base_java compile time. + * In release builds, this is a no-op because: + * - multidex isn't necessary in release builds because we run proguard there and + * thus aren't threatening to hit the dex limit; and + * - calling MultiDex.install, even in the absence of secondary dexes, causes a + * significant regression in start-up time (crbug.com/525695). + * + * @param context The application context. */ - static boolean isMultidexEnabled() { -#if defined(ENABLE_MULTIDEX) - return true; + @VisibleForTesting +#if defined(MULTIDEX_CONFIGURATION_Debug) + public static void install(Context context) { + // TODO(jbudorick): Back out this version check once support for K & below works. + // http://crbug.com/512357 + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP + && !shouldInstallMultiDex(context)) { + Log.i(TAG, "Skipping multidex installation: not needed for process."); + } else { + MultiDex.install(context); + Log.i(TAG, "Completed multidex installation."); + } + } + + private static String getProcessName(Context context) { + try { + String currentProcessName = null; + int pid = android.os.Process.myPid(); + + ActivityManager manager = + (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); + for (RunningAppProcessInfo processInfo : manager.getRunningAppProcesses()) { + if (processInfo.pid == pid) { + currentProcessName = processInfo.processName; + break; + } + } + + return currentProcessName; + } catch (SecurityException ex) { + return null; + } + } + + // Determines whether MultiDex should be installed for the current process. Isolated + // Processes should skip MultiDex as they can not actually access the files on disk. + // Privileged processes need ot have all of their dependencies in the MainDex for + // performance reasons. + private static boolean shouldInstallMultiDex(Context context) { + try { + Method isIsolatedMethod = + android.os.Process.class.getMethod("isIsolated"); + Object retVal = isIsolatedMethod.invoke(null); + if (retVal != null && retVal instanceof Boolean && ((Boolean) retVal)) { + return false; + } + } catch (IllegalAccessException | IllegalArgumentException + | InvocationTargetException | NoSuchMethodException e) { + // Ignore and fall back to checking the app processes. + } + + String currentProcessName = getProcessName(context); + if (currentProcessName == null) return true; + + PackageManager packageManager = context.getPackageManager(); + try { + ApplicationInfo appInfo = packageManager.getApplicationInfo(context.getPackageName(), + PackageManager.GET_META_DATA); + if (appInfo == null || appInfo.metaData == null) return true; + return !appInfo.metaData.getBoolean(currentProcessName + IGNORE_MULTIDEX_KEY, false); + } catch (PackageManager.NameNotFoundException e) { + return true; + } + } #else - return false; -#endif + public static void install(Context context) { } +#endif } diff --git a/base/base.gyp b/base/base.gyp index 94a1d49..dc484f4 100644 --- a/base/base.gyp +++ b/base/base.gyp @@ -1489,6 +1489,9 @@ 'variables': { 'package_name': 'org/chromium/base/multidex', 'template_deps': [], + 'additional_gcc_preprocess_options': [ + '--defines', 'MULTIDEX_CONFIGURATION_<(CONFIGURATION_NAME)', + ], }, 'includes': ['../build/android/java_cpp_template.gypi'], }, @@ -1507,10 +1510,7 @@ 'type': 'none', 'variables': { 'java_in_dir': 'android/java', - 'jar_excluded_classes': [ - '*/ChromiumMultiDex.class', - '*/NativeLibraries.class', - ], + 'jar_excluded_classes': [ '*/NativeLibraries.class' ], }, 'dependencies': [ 'base_java_application_state', @@ -1522,11 +1522,6 @@ '../third_party/android_tools/android_tools.gyp:android_support_multidex_javalib', '../third_party/jsr-305/jsr-305.gyp:jsr_305_javalib', ], - 'all_dependent_settings': { - 'variables': { - 'generate_multidex_config': 1, - }, - }, 'includes': [ '../build/java.gypi' ], }, { @@ -1588,7 +1583,6 @@ 'target_name': 'base_junit_test_support', 'type': 'none', 'dependencies': [ - 'base_multidex_gen', '../testing/android/junit/junit_test.gyp:junit_test_support', '../third_party/android_tools/android_tools.gyp:android_support_multidex_javalib', ], diff --git a/base/test/android/javatests/src/org/chromium/base/test/BaseInstrumentationTestRunner.java b/base/test/android/javatests/src/org/chromium/base/test/BaseInstrumentationTestRunner.java index 669307c..8bf3d0fb 100644 --- a/base/test/android/javatests/src/org/chromium/base/test/BaseInstrumentationTestRunner.java +++ b/base/test/android/javatests/src/org/chromium/base/test/BaseInstrumentationTestRunner.java @@ -18,7 +18,7 @@ import junit.framework.TestResult; import org.chromium.base.Log; import org.chromium.base.SysUtils; -import org.chromium.base.multidex.ChromiumMultiDexInstaller; +import org.chromium.base.multidex.ChromiumMultiDex; import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.DisableIfSkipCheck; import org.chromium.base.test.util.MinAndroidSdkLevel; @@ -37,7 +37,7 @@ public class BaseInstrumentationTestRunner extends InstrumentationTestRunner { @Override public void onCreate(Bundle arguments) { - ChromiumMultiDexInstaller.install(getTargetContext()); + ChromiumMultiDex.install(getTargetContext()); super.onCreate(arguments); } diff --git a/build/android/gyp/configure_multidex.py b/build/android/gyp/configure_multidex.py index 9f3b736..aa85d2f 100755 --- a/build/android/gyp/configure_multidex.py +++ b/build/android/gyp/configure_multidex.py @@ -6,33 +6,23 @@ import argparse import json -import os import sys from util import build_utils -_GCC_PREPROCESS_PATH = os.path.join( - os.path.dirname(__file__), 'gcc_preprocess.py') - - def ParseArgs(): parser = argparse.ArgumentParser() parser.add_argument('--configuration-name', required=True, help='The build CONFIGURATION_NAME.') - parser.add_argument('--enable-multidex', action='store_true', default=False, - help='If passed, multidex may be enabled.') parser.add_argument('--enabled-configurations', default=[], help='The configuration(s) for which multidex should be ' 'enabled. If not specified and --enable-multidex is ' 'passed, multidex will be enabled for all ' - 'configurations.') + 'configurations.') parser.add_argument('--multidex-configuration-path', required=True, help='The path to which the multidex configuration JSON ' 'should be saved.') - parser.add_argument('--multidex-config-java-file', required=True) - parser.add_argument('--multidex-config-java-stamp', required=True) - parser.add_argument('--multidex-config-java-template', required=True) args = parser.parse_args() @@ -43,41 +33,19 @@ def ParseArgs(): return args -def _WriteConfigJson(multidex_enabled, multidex_configuration_path): - config = { - 'enabled': multidex_enabled, - } - - with open(multidex_configuration_path, 'w') as f: - f.write(json.dumps(config)) - - -def _GenerateMultidexConfigJava(multidex_enabled, args): - gcc_preprocess_cmd = [ - sys.executable, _GCC_PREPROCESS_PATH, - '--include-path=', - '--template', args.multidex_config_java_template, - '--stamp', args.multidex_config_java_stamp, - '--output', args.multidex_config_java_file, - ] - if multidex_enabled: - gcc_preprocess_cmd += [ - '--defines', 'ENABLE_MULTIDEX', - ] - - build_utils.CheckOutput(gcc_preprocess_cmd) - - def main(): args = ParseArgs() multidex_enabled = ( - args.enable_multidex - and (not args.enabled_configurations - or args.configuration_name in args.enabled_configurations)) + (not args.enabled_configurations + or args.configuration_name in args.enabled_configurations)) + + config = { + 'enabled': multidex_enabled, + } - _WriteConfigJson(multidex_enabled, args.multidex_configuration_path) - _GenerateMultidexConfigJava(multidex_enabled, args) + with open(args.multidex_configuration_path, 'w') as f: + f.write(json.dumps(config)) return 0 diff --git a/build/android/java_cpp_template.gypi b/build/android/java_cpp_template.gypi index 3296659..f4ea0a9 100644 --- a/build/android/java_cpp_template.gypi +++ b/build/android/java_cpp_template.gypi @@ -34,6 +34,7 @@ { # Location where all generated Java sources will be placed. 'variables': { + 'additional_gcc_preprocess_options': [], 'include_path%': '<(DEPTH)', 'output_dir': '<(SHARED_INTERMEDIATE_DIR)/templates/<(_target_name)/<(package_name)', }, @@ -74,6 +75,7 @@ '--include-path=<(include_path)', '--output=<(output_path)', '--template=<(RULE_INPUT_PATH)', + '<@(additional_gcc_preprocess_options)', ], 'message': 'Generating Java from cpp template <(RULE_INPUT_PATH)', } diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni index fb06814..da9a853 100644 --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni @@ -1484,21 +1484,6 @@ template("android_apk") { _srcjar_deps += [ ":${_template_name}__native_libraries_java" ] } - if (!defined(invoker.apk_under_test)) { - java_cpp_template("${_template_name}__multidex_config_java") { - package_name = "org/chromium/base/multidex" - sources = [ - "//base/android/java/templates/ChromiumMultiDex.template", - ] - - defines = [] - if (enable_multidex) { - defines += [ "ENABLE_MULTIDEX" ] - } - } - _srcjar_deps += [ ":${_template_name}__multidex_config_java" ] - } - java_target = "${_template_name}__java" java_library_impl(java_target) { forward_variables_from(invoker, [ "run_findbugs" ]) diff --git a/build/java_apk.gypi b/build/java_apk.gypi index 8c305ee..ab49dc6 100644 --- a/build/java_apk.gypi +++ b/build/java_apk.gypi @@ -74,7 +74,6 @@ # replace dependencies_locale_zip_paths of all_dependent_settings. { 'variables': { - 'tested_apk_path%': '/', 'tested_apk_obfuscated_jar_path%': '/', 'tested_apk_dex_path%': '/', 'tested_apk_is_multidex%': 0, @@ -122,11 +121,6 @@ 'native_libraries_template_data_dir': '<(intermediate_dir)/native_libraries/', 'native_libraries_template_data_file': '<(native_libraries_template_data_dir)/native_libraries_array.h', 'native_libraries_template_version_file': '<(native_libraries_template_data_dir)/native_libraries_version.h', - 'generate_multidex_config%': 0, - 'multidex_config_template': '<(DEPTH)/base/android/java/templates/ChromiumMultiDex.template', - 'multidex_config_java_dir': '<(intermediate_dir)/multidex_config/', - 'multidex_config_java_file': '<(multidex_config_java_dir)/ChromiumMultiDex.java', - 'multidex_config_java_stamp': '<(intermediate_dir)/multidex_config_java.stamp', 'compile_stamp': '<(intermediate_dir)/compile.stamp', 'lint_stamp': '<(intermediate_dir)/lint.stamp', 'lint_result': '<(intermediate_dir)/lint_result.xml', @@ -800,58 +794,37 @@ }, ], }], - ], - 'target_conditions': [ - ['generate_multidex_config == 1 and is_test_apk == 0', { - 'variables': { - 'generated_src_dirs': ['<(multidex_config_java_dir)'], - }, + ['enable_multidex == 1', { 'actions': [ { + 'action_name': 'main_dex_list_for_<(_target_name)', + 'variables': { + 'jar_paths': ['>@(input_jars_paths)', '<(javac_jar_path)'], + 'output_path': '<(main_dex_list_path)', + }, + 'includes': [ 'android/main_dex_action.gypi' ], + }, + { 'action_name': 'configure_multidex_for_<(_target_name)', 'inputs': [ '<(DEPTH)/build/android/gyp/configure_multidex.py', - '<(multidex_config_template)', ], 'outputs': [ '<(multidex_configuration_path)', - '<(multidex_config_java_stamp)', ], 'variables': { 'additional_multidex_config_options': [], - 'enabled_configurations': '>(enable_multidex_configurations)', - 'conditions': [ - ['enable_multidex == 1', { - 'additional_multidex_config_options': ['--enable-multidex'], - }], - ], + 'enabled_configurations': ['>@(enable_multidex_configurations)'], }, 'action': [ 'python', '<(DEPTH)/build/android/gyp/configure_multidex.py', '--configuration-name', '<(CONFIGURATION_NAME)', '--enabled-configurations', '<(enabled_configurations)', '--multidex-configuration-path', '<(multidex_configuration_path)', - '--multidex-config-java-template', '<(multidex_config_template)', - '--multidex-config-java-file', '<(multidex_config_java_file)', - '--multidex-config-java-stamp', '<(multidex_config_java_stamp)', '>@(additional_multidex_config_options)', ], }, ], - 'conditions': [ - ['enable_multidex == 1', { - 'actions': [ - { - 'action_name': 'main_dex_list_for_<(_target_name)', - 'variables': { - 'jar_paths': ['>@(input_jars_paths)', '<(javac_jar_path)'], - 'output_path': '<(main_dex_list_path)', - }, - 'includes': [ 'android/main_dex_action.gypi' ], - }, - ] - }] - ], }], ], 'dependencies': [ @@ -982,9 +955,6 @@ ['native_lib_target != ""', { 'inputs': [ '<(native_libraries_java_stamp)' ], }], - ['generate_multidex_config == 1', { - 'inputs': [ '<(multidex_config_java_stamp)' ], - }], ], 'outputs': [ '<(compile_stamp)', diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi index 42f8802..1e4c31c 100644 --- a/chrome/chrome_tests_unit.gypi +++ b/chrome/chrome_tests_unit.gypi @@ -2984,7 +2984,6 @@ 'test_suite_name': 'unit_tests', 'isolate_file': 'unit_tests.isolate', 'android_manifest_path': 'test/android/unit_tests_apk/AndroidManifest.xml', - 'enable_multidex': 1, 'conditions': [ ['v8_use_external_startup_data==1', { 'asset_location': '<(PRODUCT_DIR)/unit_tests_apk/assets', diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index a97442d..b000210 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn @@ -1647,7 +1647,6 @@ test("unit_tests") { android_manifest = "//chrome/test/android/unit_tests_apk/AndroidManifest.xml" - enable_multidex = true isolate_file = "../unit_tests.isolate" # Some android targets still depend on --gc-sections to link. diff --git a/testing/android/native_test/java/src/org/chromium/native_test/NativeTestActivity.java b/testing/android/native_test/java/src/org/chromium/native_test/NativeTestActivity.java index 00d5c78..bdba1e0 100644 --- a/testing/android/native_test/java/src/org/chromium/native_test/NativeTestActivity.java +++ b/testing/android/native_test/java/src/org/chromium/native_test/NativeTestActivity.java @@ -15,7 +15,6 @@ import android.os.Process; import org.chromium.base.CommandLine; import org.chromium.base.Log; import org.chromium.base.annotations.JNINamespace; -import org.chromium.base.multidex.ChromiumMultiDexInstaller; import org.chromium.test.reporter.TestStatusReporter; import java.io.File; @@ -51,9 +50,7 @@ public class NativeTestActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { - ChromiumMultiDexInstaller.install(this); super.onCreate(savedInstanceState); - CommandLine.init(new String[]{}); parseArgumentsFromIntent(getIntent()); diff --git a/testing/test.gni b/testing/test.gni index 6739bfe..7ce5d85 100644 --- a/testing/test.gni +++ b/testing/test.gni @@ -66,7 +66,6 @@ template("test") { [ "android_manifest", "deps", - "enable_multidex", "use_default_launcher", "write_asset_list", ]) |