Giter Site home page Giter Site logo

bytedance / boostmultidex Goto Github PK

View Code? Open in Web Editor NEW
1.1K 1.1K 114.0 274 KB

BoostMultiDex is a solution for quickly loading multiple dex files on low Android version devices (4.X and below, SDK <21).

License: Apache License 2.0

CMake 2.03% Java 81.94% C++ 16.03%
android

boostmultidex's People

Contributors

galaxyleo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boostmultidex's Issues

Insecure Randomness

Try not to use unsafe random numbers, especially when sensitive operations such as checksums are involved.Doing so allows an attacker to control the value used to seed the pseudorandom number generator, and therefore predict the sequence of values (usually integers) produced by calls to Random.nextInt(), Random.nextShort(), Random.nextLong()

【建议】使用ndkVersion指定ndk 版本

建议使用ndkVersion指定版本,这样方便管理多个ndk版本,而且对其他工程不影响。
需升级插件到3.5.0以上。
如下:

android {
    compileSdkVersion 28
    ndkVersion "16.1.4479499"

    defaultConfig {
        externalNativeBuild {
            cmake {
                cppFlags "-std=c++14", "-fno-exceptions", "-O2"
                abiFilters 'armeabi', 'armeabi-v7a'
            }
        }
    }
}

__futex_syscall3

  #00  pc 0000000000021b48  /system/lib/libc.so (__futex_syscall3+8)
  #00  pc 000000000000e8b4  /system/lib/libc.so
  #00  pc 0000000000052715  /system/lib/libdvm.so (dvmLinearAlloc(Object*, unsigned int)+24)
  #00  pc 000000000006f47f  /system/lib/libdvm.so
  #00  pc 0000000000068f55  /system/lib/libdvm.so
  #00  pc 0000000000000214  /dev/ashmem/dalvik-jit-code-cache (deleted)

接入后GP后台Android4.4版本开始出现较多__futex_syscall3异常,本地也偶尔能在首次启动的时候复现,怀疑是在系统资源(cpu/内存)紧缺下,可能会被系统杀死的情况

查看BoostMultiDex的文章是有介绍使用到libdvm.so,怀疑是4.4这个LinearAlloc上限比较低,分配失败导致的crash

using func = int (*)(constchar* fileName, constchar* odexOutputName, void* ppRawDexFile, bool isBootstrap);

void* handler = dlopen("libdvm.so", RTLD_NOW);
dvmRawDexFileOpen = (func) dlsym(handler, "_Z17dvmRawDexFileOpenPKcS0_PP10RawDexFileb");
dvmRawDexFileOpen(file_path, opt_file_path, &arg, false);

Application中重复执行的问题

作者好,
在使用的时候,简单看了下实现,也是新开发进程在执行,那么新开进程时就会导致Application方法会出现重复执行的情况,请问是不是需要使用者自己在Application中手动判断下当前进程是否为BoosstMultiDex进程,如果是,则直接return不往下执行,如下:

public class SaleApplication extends Application {
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        Log.i(TAG, "[attachBaseContext],开始");
        if (BoostMultiDex.isOptimizeProcess(getCurProcessName(this))) {
            Log.i(TAG, "[attachBaseContext],当前进程为Dex优化进程,不往下执行");
            return;
        }

        if(android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP){
            //如果小于5.0
            BoostMultiDex.install(base);
        }else {
            MultiDex.install(base);
        }
   }
   @Override
      public void onCreate() {
          super.onCreate();
          if (BoostMultiDex.isOptimizeProcess(getCurProcessName(this))) {
              Log.i(TAG, "[attachBaseContext],当前进程为Dex优化进程,不往下执行");
              return;
          }
    }
    @Override
    public void onTrimMemory(int level) {
        super.onTrimMemory(level);
        // 此进程是否为dex安装进程(避免application重复加载)
        if (BoostMultiDex.isOptimizeProcess(getCurProcessName(this))) {
            Log.i(TAG, "[attachBaseContext],当前进程为Dex优化进程,不往下执行");
            return;
        }
    }
}```

征文 | Call for articles

欢迎大家贡献本项目的深度分析好文。可以是接入自己工程的深度体验,或者本项目源码分析,我们将选取优秀文章放到Wiki中。

可以在评论区贴上文章链接,或者发送到邮箱[email protected]与我们联系。谢谢。


Everyone is welcome to contribute in-depth analysis of this project. It can be the in-depth experience of accepting your own project, or the source code analysis of this project. We will select excellent articles to Wiki.

You can post a link to the article in the comment area, or send it to [email protected] to contact us. Thank you.

signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------

I/ActivityManager( 1548): Start proc com.xxx.xxx.tv for activity com.xxx.xxx.tv/com.xxx.xxx.LauncherAlias: pid=2859 uid=10034 gids={50034, 3002, 3003, 1028, 1015, 1023}
I/BoostMultiDex( 2859): BoostMultiDex is installing, version is 1.0.1
I/BoostMultiDex( 2859): VM with version 1.6.0 does not have support
I/BoostMultiDex( 2859): Do checksum false
I/BoostMultiDex( 2859): Blocking on lock /data/data/com.xxx.xxx.tv/files/boost_multidex/boost_multidex.prepare.lock
I/BoostMultiDex( 2859): Acquired on lock /data/data/com.xxx.xxx.tv/files/boost_multidex/boost_multidex.prepare.lock
I/BoostMultiDex( 2859): Blocking on lock /data/data/com.xxx.xxx.tv/files/boost_multidex/boost_multidex.install.lock
I/BoostMultiDex( 2859): Acquired on lock /data/data/com.xxx.xxx.tv/files/boost_multidex/boost_multidex.install.lock
I/BoostMultiDex( 2859): Released lock /data/data/com.xxx.xxx.tv/files/boost_multidex/boost_multidex.prepare.lock
D/dalvikvm( 2859): Trying to load lib /data/app-lib/com.xxx.xxx.tv-1/libboost_multidex.so 0x42015408
D/dalvikvm( 2859): Added shared lib /data/app-lib/com.xxx.xxx.tv-1/libboost_multidex.so 0x42015408
I/BoostMultiDex( 2859): VM lib is libdvm.so
I/BOOST_MULTIDEX.NATIVE( 2859): set action successfully
F/libc ( 2859): stack corruption detected
F/libc ( 2859): Fatal signal 6 (SIGABRT) at 0x00000b2b (code=-6), thread 2859 (om.xxx.xxx.tv)
D/dalvikvm( 2859): GC_CONCURRENT freed 187K, 27% free 3131K/4244K, paused 2ms+1ms, total 16ms
D/checkWifi( 1548): =====>3
D/checkWifi( 1548): wifi=====>3
D/WifiHW ( 1548): wifi_device_list[6] = 1
D/WifiHW ( 1548): enter func set_driver_property device_id = 6
D/WifiHW ( 1548): ==>enter func get_device_by_order
E/WifiHW ( 1548): get_wifi_device_num is 1
I/DEBUG ( 1086): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 1086): Build fingerprint: 'MStar/aosp_cv6a638_base/cv6a638_base:4.4.4/KTU84P/0.0.2:userdebug/test-keys'
I/DEBUG ( 1086): Revision: '32'
I/DEBUG ( 1086): pid: 2859, tid: 2859, name: om.xxx.xxx.tv >>> com.xxx.xxx.tv <<<
I/DEBUG ( 1086): signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
I/DEBUG ( 1086): Abort message: 'stack corruption detected'
D/hwcomposer( 1087): lastHWWindowInfo is dirty
I/DEBUG ( 1086): r0 00000000 r1 00000b2b r2 00000006 r3 00000000
I/DEBUG ( 1086): r4 00000006 r5 00000002 r6 00000b2b r7 0000010c[ 936.485609] binder: 2859: binder_alloc_buf, no vma

I/DEBUG ( 10[ 936.490768] binder: 1548:2880 transaction failed 29201, size 100-4
86): r8 41163ed8 r9 b940001d sl 41b90988 fp becf847c
I/DEBUG ( 1086): ip becf8460 sp becf8398 lr 40124081 pc 40132fc0 cpsr 000f0010
I/DEBUG ( 1086): d0 746564206e6f6965 d1 676f6c6f6e686363
I/DEBUG ( 1086): d2 57bad19857bad174 d3 57bad20857bad165
I/DEBUG ( 1086): d4 65765f656c62616c d5 7064656e6f697372
I/DEBUG ( 1086): d6 6c62616c65637261 d7 6f69737265762e65
I/DEBUG ( 1086): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 1086): d10 0000000000000000 d11 0000000000000000
I/DEBUG ( 1086): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 1086): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 1086): d16 ffffffffffffffeb d17 0000000000000004
I/DEBUG ( 1086): d18 0000000000000000 d19 8000000000000000
I/DEBUG ( 1086): d20 0000000000004000 d21 0000000000000000
I/DEBUG ( 1086): d22 0000000000004000 d23 8000000000000000
I/DEBUG ( 1086): d24 0000000000000000 d25 0010001000100010
I/DEBUG ( 1086): d26 991f1f1f991f1f1f d27 991f1f1f991f1f1f
I/DEBUG ( 1086): d28 0707070703030303 d29 00a5c02a00a08029
I/DEBUG ( 1086): d30 0085c02200808021 d31 0000000000004000
I/DEBUG ( 1086): scr 60000010
I/DEBUG ( 1086):
I/DEBUG ( 1086): backtrace:
I/DEBUG ( 1086): #00 pc 0[ 936.614046] [dvfs_boost] this client is not running
0021fc0 /system/lib/libc.so (tgkill+12)
I/DEBUG ( 1086): #1 pc 0001307d /system/lib/libc.so (pthread_kill+48)
I/DEBUG ( 1086): #2 pc 00013291 /system/lib/libc.so (raise+10)
I/DEBUG ( 1086): #3 pc 00011fa9 /system/lib/libc.so
I/DEBUG ( 1086): #4 pc 00021874 /system/lib/libc.so (abort+4)
I/DEBUG ( 1086): #5 pc 00012aad /system/lib/libc.so
I/DEBUG ( 1086): #6 pc 00011f7b /system/lib/libc.so (__stack_chk_fail+6)
I/DEBUG ( 1086): #7 pc 00001827 /data/app-lib/com.xxx.xxx.tv-1/libboost_multidex.so (Java_com_bytedance_boost_1multidex_BoostNative_initialize+642)
I/DEBUG ( 1086): #8 pc 0001db8c /system/lib/libdvm.so (dvmPlatformInvoke+112)
I/DEBUG ( 1086): #9 pc 0004e033 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
I/DEBUG ( 1086): #10 pc 0004fa01 /system/lib/libdvm.so (dvmResolveNativeMethod(unsigned int const*, JValue*, Method const*, Thread*)+184)
I/DEBUG ( 1086): #11 pc 00026fa0 /system/lib/libdvm.so
I/DEBUG ( 1086): #12 pc 0002df2c /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
I/DEBUG ( 1086): #13 pc 0002b5d8 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
I/DEBUG ( 1086): #14 pc 00060741 /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+392)
I/DEBUG ( 1086): #15 pc 000686db /system/lib/libdvm.so
I/DEBUG ( 1086): #16 pc 00026fa0 /system/lib/libdvm.so
I/DEBUG ( 1086): #17 pc 0002df2c /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
I/DEBUG ( 1086): #18 pc 0002b5d8 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
I/DEBUG ( 1086): #19 pc 0006045f /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+338)
I/DEBUG ( 1086): #20 pc 00049c1b /system/lib/libdvm.so
I/DEBUG ( 1086): #21 pc 0004d757 /system/lib/libandroid_runtime.so
I/DEBUG ( 1086): #22 pc 0004e483 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*, bool)+358)
I/DEBUG ( 1086): #23 pc 00001063 /system/bin/app_process
I/DEBUG ( 1086): #24 pc 0000e3eb /system/lib/libc.so (__libc_init+50)
I/DEBUG ( 1086): #25 pc 00000d80 /system/bin/app_process
I/DEBUG ( 1086):
I/DEBUG ( 1086): stack:
I/DEBUG ( 1086): becf8358 41b90978 [anon:libc_malloc]
I/DEBUG ( 1086): becf835c 00000005
I/DEBUG ( 1086): becf8360 4206b890 /dev/ashmem/dalvik-heap (deleted)
I/DEBUG ( 1086): becf8364 41bfeb97 /system/lib/libdvm.so (dvmInitClass+1182)
I/DEBUG ( 1086): becf8368 4206b890 /dev/ashmem/dalvik-heap (deleted)
I/DEBUG ( 1086): becf836c becf8388 [stack]
I/DEBUG ( 1086): becf8370 5df76c61 /data/app-lib/com.xxx.xxx.tv-1/libboost_multidex.so
I/DEBUG ( 1086): becf8374 41bfef2f /system/lib/libdvm.so
I/DEBUG ( 1086): becf8378 becf8380 [stack]
I/DEBUG ( 1086): becf837c 00000000
I/DEBUG ( 1086): becf8380 0000425b
I/DEBUG ( 1086): becf8384 00000000
I/DEBUG ( 1086): becf8388 00000010
I/DEBUG ( 1086): becf838c becf8380 [stack]
I/DEBUG ( 1086): becf8390 4015b1d8 /system/lib/libc.so
I/DEBUG ( 1086): becf8394 5c6eafc0 [anon:libc_malloc]
I/DEBUG ( 1086): #00 becf8398 00000006
I/DEBUG ( 1086): becf839c 00000002
I/DEBUG ( 1086): becf83a0 00000b2b
I/DEBUG ( 1086): becf83a4 becf8460 [stack]
I/DEBUG ( 1086): becf83a8 becf8460 [stack]
I/DEBUG ( 1086): becf83ac 40124081 /system/lib/libc.so (pthread_kill+52)
I/DEBUG ( 1086): #1 becf83b0 00000006
I/DEBUG ( 1086): becf83b4 5df76c50 /data/app-lib/com.xxx.xxx.tv-1/libboost_multidex.so
I/DEBUG ( 1086): becf83b8 41c3bbf0 /system/lib/libdvm.so
I/DEBUG ( 1086): becf83bc 40124295 /system/lib/libc.so (raise+14)
I/DEBUG ( 1086): #2 becf83c0 becf83cc [stack]
I/DEBUG ( 1086): becf83c4 40122fad /system/lib/libc.so
I/DEBUG ( 1086):
I/DEBUG ( 1086): memory near r8:
I/DEBUG ( 1086): 41163eb8 41b66000 41163db4 41b68ea0 400ffc70
I/DEBUG ( 1086): 41163ec8 411637e0 00000001 41b66000 00000100
I/DEBUG ( 1086): 41163ed8 6462696c 732e6d76 0000006f 00000000
I/DEBUG ( 1086): 41163ee8 00000000 00000000 00000000 00000000
I/DEBUG ( 1086): 41163ef8 00000000 00000000 00000000 00000000
I/DEBUG ( 1086): 41163f08 00000000 00000000 00000000 00000000
I/DEBUG ( 1086): 41163f18 00000000 00000000 00000000 00000000
I/DEBUG ( 1086): 41163f28 00000000 00000000 00000000 00000000
I/DEBUG ( 1086): 41163f38 00000000 00000000 00000000 00000000
I/DEBUG ( 1086): 41163f48 00000000 00000000 00000000 00000000
I/DEBUG ( 1086): 41163f58 41b93034 00000008 00000000 41b93000
I/DEBUG ( 1086): 41163f68 000b2000 00000000 41c3d9f4 00000000
I/DEBUG ( 1086): 41163f78 00000000 5a01d004 00000001 41b99c48
I/DEBUG ( 1086): 41163f88 41b93148 00000407 000006b0 41ba7520
I/DEBUG ( 1086): 41163f98 41ba853c 41c3dc78 41baf934 000000df
I/DEBUG ( 1086): 41163fa8 41ba9ffc 00000b27 00000000 00000000
I/DEBUG ( 1086):
I/DEBUG ( 1086): memory near r9:
I/DEBUG ( 1086): b93ffffc ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b940000c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b940001c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b940002c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b940003c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b940004c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b940005c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b940006c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b940007c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b940008c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b940009c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b94000ac ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b94000bc ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b94000cc ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b94000dc ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086): b94000ec ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1086):
I/DEBUG ( 1086): memory near sl:
I/DEBUG ( 1086): 41b90968 00000000 00000800 57b9e008 0000045b
I/DEBUG ( 1086): 41b90978 59420770 57ba6b20 57f12388 5f383000
I/DEBUG ( 1086): 41b90988 00000000 00000007 becf85c0 00000000
I/DEBUG ( 1086): 41b90998 becf8614 00000001 00000000 41bb0d00
I/DEBUG ( 1086): 41b909a8 00000000 00000000 57164770 57ba1300
I/DEBUG ( 1086): 41b909b8 00000000 00000000 00000001 00006000
I/DEBUG ( 1086): 41b909c8 00000000 400fb154 41bb0d00 41bb5bc0
I/DEBUG ( 1086): 41b909d8 00000000 41bb9cbc 41bb9d30 41bb9be0
I/DEBUG ( 1086): 41b909e8 41bb9c00 41bb9c5c 00000000 00000000
I/DEBUG ( 1086): 41b909f8 00000000 00000000 00000000 00000000
I/DEBUG ( 1086): 41b90a08 00000000 00000000 00002000 41c4291c
I/DEBUG ( 1086): 41b90a18 00000000 00000000 0000000b 5be1d8e8
I/DEBUG ( 1086): 41b90a28 00000001 00000080 00000200 00000000
I/DEBUG ( 1086): 41b90a38 00000000 00000000 00000000 00000000
I/DEBUG ( 1086): 41b90a48 00000000 00000000 00000000 00000000
I/DEBUG ( 1086): 41b90a58 00000000 00000000 00000000 00000000
I/DEBUG ( 1086):
I/DEBUG ( 1086): memory near fp:
I/DEBUG ( 1086): becf845c 00000007 57ba6b28 41bb0b90 57ba6b20
I/DEBUG ( 1086): becf846c 00000001 5f10b4fb 4206a968 4200ee6c
I/DEBUG ( 1086): becf847c 41be1037 57ba6b20 5f10b4f8 5df755a5
I/DEBUG ( 1086): becf848c 41b90988 5be334f1 5c6e8a70 07300019
I/DEBUG ( 1086): becf849c 00000000 5be2fd08 4015f384 5df755a5
I/DEBUG ( 1086): becf84ac 401222df 4015b000 5be334b8 00000000
I/DEBUG ( 1086): becf84bc 5be2fd08 00000000 4011ecad 5deae6dc
I/DEBUG ( 1086): becf84cc 41be2c47 becf8554 00000000 41b90978
I/DEBUG ( 1086): becf84dc 57ba6b14 becf8614 becf8554 00000000
I/DEBUG ( 1086): becf84ec 41bf3469 0000001b 5f0da322 41b90ce4
I/DEBUG ( 1086): becf84fc 41be486f 41b90978 41be8833 becf8574
I/DEBUG ( 1086): becf850c 57f123d4 00000001 4206a968 00000003
I/DEBUG ( 1086): becf851c 00000001 57f123c0 5f14e535 becf8574
I/DEBUG ( 1086): becf852c 00000038 00000001 41bfed4b 5f14e535
I/DEBUG ( 1086): becf853c 5eb20644 4206a968 5f14e535 5f383000
I/DEBUG ( 1086): becf854c 00004862 00000002 3b8397ee 00000007
I/DEBUG ( 1086):
I/DEBUG ( 1086): memory near ip:
I/DEBUG ( 1086): becf8440 6f432079 64744c2e becf8400 57ba6b20
I/DEBUG ( 1086): becf8450 becf847c 57f123c0 41b90978 00000007
I/DEBUG ( 1086): becf8460 57ba6b28 41bb0b90 57ba6b20 00000001
I/DEBUG ( 1086): becf8470 5f10b4fb 4206a968 4200ee6c 41be1037
I/DEBUG ( 1086): becf8480 57ba6b20 5f10b4f8 5df755a5 41b90988
I/DEBUG ( 1086): becf8490 5be334f1 5c6e8a70 07300019 00000000
I/DEBUG ( 1086): becf84a0 5be2fd08 4015f384 5df755a5 401222df
I/DEBUG ( 1086): becf84b0 4015b000 5be334b8 00000000 5be2fd08
I/DEBUG ( 1086): becf84c0 00000000 4011ecad 5deae6dc 41be2c47
I/DEBUG ( 1086): becf84d0 becf8554 00000000 41b90978 57ba6b14
I/DEBUG ( 1086): becf84e0 becf8614 becf8554 00000000 41bf3469
I/DEBUG ( 1086): becf84f0 0000001b 5f0da322 41b90ce4 41be486f
I/DEBUG ( 1086): becf8500 41b90978 41be8833 becf8574 57f123d4
I/DEBUG ( 1086): becf8510 00000001 4206a968 00000003 00000001
I/DEBUG ( 1086): becf8520 57f123c0 5f14e535 becf8574 00000038
I/DEBUG ( 1086): becf8530 00000001 41bfed4b 5f14e535 5eb20644
I/DEBUG ( 1086):
I/DEBUG ( 1086): memory near sp:
I/DEBUG ( 1086): becf8378 becf8380 00000000 0000425b 00000000
I/DEBUG ( 1086): becf8388 00000010 becf8380 4015b1d8 5c6eafc0
I/DEBUG ( 1086): becf8398 00000006 00000002 00000b2b becf8460
I/DEBUG ( 1086): becf83a8 becf8460 40124081 00000006 5df76c50
I/DEBUG ( 1086): becf83b8 41c3bbf0 40124295 becf83cc 40122fad
I/DEBUG ( 1086): becf83c8 0000055b ffffffdf 41163ed8 41b986f8
I/DEBUG ( 1086): becf83d8 5df76c5d 00000000 5df76ceb 00000001
I/DEBUG ( 1086): becf83e8 5df76c50 40132878 3b8397ee 40123ab1
I/DEBUG ( 1086): becf83f8 401510e8 becf840c 3b8397ee 40122f7f
I/DEBUG ( 1086): becf8408 401510e8 64744c2e 3b8397ee 3b8397ee
I/DEBUG ( 1086): becf8418 3b8397ee 5df7582b 00000000 5df75af1
I/DEBUG ( 1086): becf8428 00000000 00000000 00000000 54206c61
I/DEBUG ( 1086): becf8438 6e686365 676f6c6f 6f432079 64744c2e
I/DEBUG ( 1086): becf8448 becf8400 57ba6b20 becf847c 57f123c0
I/DEBUG ( 1086): becf8458 41b90978 00000007 57ba6b28 41bb0b90
I/DEBUG ( 1086): becf8468 57ba6b20 00000001 5f10b4fb 4206a968
I/DEBUG ( 1086):
I/DEBUG ( 1086): code around pc:
I/DEBUG ( 1086): 40132fa0 e8bd00f0 e3700a01 912fff1e e2600000
I/DEBUG ( 1086): 40132fb0 ea006e73 e92d50f0 e3a07f43 ef000000
I/DEBUG ( 1086): 40132fc0 e8bd50f0 e3700a01 912fff1e e2600000
I/DEBUG ( 1086): 40132fd0 ea006e6b e92d50f0 e3a070ee ef000000
I/DEBUG ( 1086): 40132fe0 e8bd50f0 e3700a01 912fff1e e2600000
I/DEBUG ( 1086): 40132ff0 ea006e63 e1520003 8a00008c f5d1f040
I/DEBUG ( 1086): 40133000 e92d4001 e3520010 3a000024 e2603000
I/DEBUG ( 1086): 40133010 e213300f 0a00000e e0422003 e1b0cf83
I/DEBUG ( 1086): 40133020 44d1e001 44c0e001 24d1c001 24d1e001
I/DEBUG ( 1086): 40133030 24c0c001 24c0e001 e1b0ce83 aa000001
I/DEBUG ( 1086): 40133040 f4a1030d f480031d 3a000001 f421070d
I/DEBUG ( 1086): 40133050 f400071d e2522040 3a000006 f421020d
I/DEBUG ( 1086): 40133060 f421420d f5d1f100 e2522040 f400022d
I/DEBUG ( 1086): 40133070 f400422d 2afffff8 e2922020 3a000002
I/DEBUG ( 1086): 40133080 f421020d e2422020 f400022d e2822020
I/DEBUG ( 1086): 40133090 e3120010 0a000001 f4210a0d f4000a2d
I/DEBUG ( 1086):
I/DEBUG ( 1086): code around lr:
I/DEBUG ( 1086): 40124060 447b4b13 42b3e010 4812d10e 44786a1e
I/DEBUG ( 1086): 40124070 ec86f7fb e9d8f00d 46224631 ef9af00e
I/DEBUG ( 1086): 40124080 d00a3001 e00b2400 2b00681b 480ad1eb
I/DEBUG ( 1086): 40124090 44782403 ec74f7fb f001e002 6804fa1b
I/DEBUG ( 1086): 401240a0 fa18f001 46206005 bf00bd70 0003b342
I/DEBUG ( 1086): 401240b0 0003b336 0003b32e 0003b30a bf7ef7ff
I/DEBUG ( 1086): 401240c0 43f0e92d 4a3d4b3c 589c447b 6823b08b
I/DEBUG ( 1086): 401240d0 460d4606 f0019309 46a1f9fd 8000f8d0
I/DEBUG ( 1086): 401240e0 d0482d00 f00f4628 280ffe6b d8444604
I/DEBUG ( 1086): 401240f0 ffe4f7ff d1064286 4629200f e8a2f00d
I/DEBUG ( 1086): 40124100 d03c2800 482ee02e f7fb4478 482debb8
I/DEBUG ( 1086): 40124110 e0154478 d11342b0 482b6a06 f7fb4478
I/DEBUG ( 1086): 40124120 4a2aec30 447a2120 a8014633 fa00f013
I/DEBUG ( 1086): 40124130 a8012101 fcfef01a 46061c42 e011d104
I/DEBUG ( 1086): 40124140 28006800 e02cd1e6 46294630 f00d4622
I/DEBUG ( 1086): 40124150 1c43e8de d11e4607 f9bcf001 29046801
E/SurfaceFlinger( 1087): sys.esharecap is 0
D/SurfaceFlinger( 1087): captureScreen: supportWidth = 3840, supportHeight = 2160, maxLayerZ = 22015
D/gralloc ( 1087): allocate buffer from ION HEAP 0x1
D/gralloc ( 1087): allocate memory from system heap
W/ActivityManager( 1548): Force finishing activity com.xxx.xxx.tv/com.xxx.xxx.LauncherAlias
E/JavaBinder( 1548): !!! FAILED BINDER TRANSACTION !!!
W/ActivityManager( 1548): Exception thrown during pause
W/ActivityManager( 1548): android.os.TransactionTooLargeException
W/ActivityManager( 1548): at android.os.BinderProxy.transact(Native Method)
W/ActivityManager( 1548): at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:660)
W/ActivityManager( 1548): at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:790)
W/ActivityManager( 1548): at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2498)
W/ActivityManager( 1548): at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:2372)
W/ActivityManager( 1548): at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:2116)
W/ActivityManager( 1548): at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:9809)
W/ActivityManager( 1548): at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:9702)
W/ActivityManager( 1548): at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:10347)
W/ActivityManager( 1548): at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:9898)
W/ActivityManager( 1548): at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)
I/ActivityManager( 1548): TR5) TaskRecord{42372998 #3 A=lh.oslauncher U=0 sz=2}
I/ActivityManager( 1548): TR4) TaskRecord{43c900f0 #8 A=com.xxx.xxx.tv U=0 sz=1}
D/Zygote ( 1088): Process 2859 terminated by signal (6)

Android 4.4 崩溃

问题

  1. 在API 19(Android 4.4)上,使用笔者的应用以及官方下载的抖音应用进行测试,进入应用一段时间后都会崩溃。

  2. 是否有兼容的方案?比如说控制main dex或者second dex的方法数上限。

  3. 尝试使用--set-max-idx-number选项设置,但是此选项只对DX编译器有用,目前本人项目中使用Gradle版本为3.5.3AndroidXGradle的版本有要求,无法降级Gradle到默认使用DX编译器的版本),默认使用的是D8编译器,使用android.enableD8=false之后,--set-max-idx-number选项还是不生效。是否有其他方案?

抖音版本

aweme_aweGW_v110901_6502_1594721527http://s.toutiao.com/UsMYE/ 下载的)

崩溃信息

安装抖音之后,在控制台没有看到BoostMultiDex相关的日志信息,猜测是抖音屏蔽了日志输出,以下是笔者的debug应用安装后输出的日志信息。

07-16 01:16:03.314 I/BoostMultiDex: BoostMultiDex is installing, version is 1.0.1
07-16 01:16:03.314 I/BoostMultiDex: VM with version 1.6.0 does not have support
07-16 01:16:03.324 I/BoostMultiDex: Do checksum true
07-16 01:16:03.324 I/BoostMultiDex: Blocking on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:03.324 I/BoostMultiDex: Acquired on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:03.324 I/BoostMultiDex: Blocking on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.install.lock
07-16 01:16:03.324 I/BoostMultiDex: Acquired on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.install.lock
07-16 01:16:03.324 I/BoostMultiDex: Released lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:03.424 I/BoostMultiDex: VM lib is libdvm.so
07-16 01:16:03.424 I/BoostMultiDex: Memory remains 83927040, free space 2465812480
07-16 01:16:03.424 I/BoostMultiDex: Extracting /data/data/com.test.packagename/files/boost_multidex/dex_cache/tmp-15477232752.dex
07-16 01:16:03.774 I/BoostMultiDex: Renaming to /data/data/com.test.packagename/files/boost_multidex/dex_cache/2.dex
07-16 01:16:03.794 I/BoostMultiDex: Put f key dex.checksum.dex.time.2 checksum=75797446, time=1594883763000
07-16 01:16:03.804 I/BoostMultiDex: Memory remains 83927040, free space 2455855104
07-16 01:16:03.804 I/BoostMultiDex: Extracting /data/data/com.test.packagename/files/boost_multidex/dex_cache/tmp--10598086823.dex
07-16 01:16:04.154 I/BoostMultiDex: Renaming to /data/data/com.test.packagename/files/boost_multidex/dex_cache/3.dex
07-16 01:16:04.194 I/BoostMultiDex: Put f key dex.checksum.dex.time.3 checksum=2531167225, time=1594883764000
07-16 01:16:04.304 I/BoostMultiDex: Memory remains 83927040, free space 2445991936
07-16 01:16:04.304 I/BoostMultiDex: Extracting /data/data/com.test.packagename/files/boost_multidex/dex_cache/tmp-1020745524.dex
07-16 01:16:04.334 I/BoostMultiDex: Renaming to /data/data/com.test.packagename/files/boost_multidex/dex_cache/4.dex
07-16 01:16:04.334 I/BoostMultiDex: Put f key dex.checksum.dex.time.4 checksum=1244119903, time=1594883764000
07-16 01:16:04.994 I/BoostMultiDex: Load dex in holder com.bytedance.boost_multidex.DexHolder$DexBuffer@41fcfc78, index: 2, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/2.dex, size: 9945892], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/2.odex, size: 0]
07-16 01:16:04.994 I/BoostMultiDex: Add info: com.bytedance.boost_multidex.DexHolder$DexBuffer@41fcfc78, index: 2, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/2.dex, size: 9945892], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/2.odex, size: 0]
07-16 01:16:05.574 I/BoostMultiDex: Load dex in holder com.bytedance.boost_multidex.DexHolder$DexBuffer@41fd9e28, index: 3, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/3.dex, size: 9873536], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/3.odex, size: 0]
07-16 01:16:05.574 I/BoostMultiDex: Add info: com.bytedance.boost_multidex.DexHolder$DexBuffer@41fd9e28, index: 3, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/3.dex, size: 9873536], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/3.odex, size: 0]
07-16 01:16:05.624 I/BoostMultiDex: Load dex in holder com.bytedance.boost_multidex.DexHolder$DexBuffer@41fe4060, index: 4, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/4.dex, size: 933880], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/4.odex, size: 0]
07-16 01:16:05.624 I/BoostMultiDex: Add info: com.bytedance.boost_multidex.DexHolder$DexBuffer@41fe4060, index: 4, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/4.dex, size: 933880], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/4.odex, size: 0]
07-16 01:16:05.624 D/BoostMultiDex: After install all, sp value is {dex.obj.type2=1, dex.obj.type3=1, dex.number=4, dex.checksum.3=2531167225, dex.obj.type4=1, dex.checksum.2=75797446, dex.time.2=1594883763000, timestamp=1594883622000, dex.time.3=1594883764000, dex.time.4=1594883764000, crc=4060231304, dex.checksum.4=1244119903}
07-16 01:16:05.624 I/BoostMultiDex: Released lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.install.lock
07-16 01:16:05.634 I/BoostMultiDex: install done
07-16 01:16:18.154 I/BoostMultiDex: BoostMultiDex is installing, version is 1.0.1
07-16 01:16:18.154 I/BoostMultiDex: VM with version 1.6.0 does not have support
07-16 01:16:18.154 I/BoostMultiDex: Do checksum true
07-16 01:16:18.154 I/BoostMultiDex: VM lib is libdvm.so
07-16 01:16:20.124 I/BoostMultiDex: Install holder: com.bytedance.boost_multidex.DexHolder$ApkBuffer, index 0
07-16 01:16:20.734 I/BoostMultiDex: Install holder: com.bytedance.boost_multidex.DexHolder$ApkBuffer, index 1
07-16 01:16:20.784 I/BoostMultiDex: Install holder: com.bytedance.boost_multidex.DexHolder$ApkBuffer, index 2
07-16 01:16:21.124 D/BoostMultiDex: Starting OptimizeService
07-16 01:16:31.134 I/BoostMultiDex: Blocking on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.install.lock
07-16 01:16:31.134 I/BoostMultiDex: Acquired on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.install.lock
07-16 01:16:31.154 I/BoostMultiDex: Process beginning holder com.bytedance.boost_multidex.DexHolder$DexBuffer@42410c88, index: 2, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/2.dex, size: 9945892], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/2.odex, size: 0], type: 1
07-16 01:16:31.154 I/BoostMultiDex: Free space is enough: 2440122368, continue...
07-16 01:16:31.154 D/BoostMultiDex: Process holder, com.bytedance.boost_multidex.DexHolder$DexBuffer@42410c88, index: 2, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/2.dex, size: 9945892], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/2.odex, size: 0]
07-16 01:16:33.554 W/BoostMultiDex: Opt dex in origin way
07-16 01:16:35.764 E/BoostMultiDex: Fail to opt dex finally
    java.io.IOException: unable to open DEX file
        at dalvik.system.DexFile.openDexFileNative(Native Method)
        at dalvik.system.DexFile.openDexFile(DexFile.java:296)
        at dalvik.system.DexFile.<init>(DexFile.java:111)
        at dalvik.system.DexFile.loadDex(DexFile.java:151)
        at com.bytedance.boost_multidex.DexHolder$DexBuffer.toFasterHolder()
        at com.bytedance.boost_multidex.OptimizeService.handleOptimize()
        at com.bytedance.boost_multidex.OptimizeService.onHandleIntent()
        at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.os.HandlerThread.run(HandlerThread.java:61)
07-16 01:16:35.774 I/BoostMultiDex: Blocking on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:35.774 I/BoostMultiDex: Acquired on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:35.774 I/BoostMultiDex: Released lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:35.774 I/BoostMultiDex: Process beginning holder com.bytedance.boost_multidex.DexHolder$DexBuffer@42414258, index: 3, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/3.dex, size: 9873536], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/3.odex, size: 0], type: 1
07-16 01:16:35.774 I/BoostMultiDex: Free space is enough: 2430173184, continue...
07-16 01:16:35.774 D/BoostMultiDex: Process holder, com.bytedance.boost_multidex.DexHolder$DexBuffer@42414258, index: 3, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/3.dex, size: 9873536], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/3.odex, size: 0]
07-16 01:16:38.274 W/BoostMultiDex: Opt dex in origin way
07-16 01:16:40.654 E/BoostMultiDex: Fail to opt dex finally
    java.io.IOException: unable to open DEX file
        at dalvik.system.DexFile.openDexFileNative(Native Method)
        at dalvik.system.DexFile.openDexFile(DexFile.java:296)
        at dalvik.system.DexFile.<init>(DexFile.java:111)
        at dalvik.system.DexFile.loadDex(DexFile.java:151)
        at com.bytedance.boost_multidex.DexHolder$DexBuffer.toFasterHolder()
        at com.bytedance.boost_multidex.OptimizeService.handleOptimize()
        at com.bytedance.boost_multidex.OptimizeService.onHandleIntent()
        at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.os.HandlerThread.run(HandlerThread.java:61)
07-16 01:16:40.654 I/BoostMultiDex: Blocking on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:40.654 I/BoostMultiDex: Acquired on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:40.654 I/BoostMultiDex: Released lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:40.664 I/BoostMultiDex: Process beginning holder com.bytedance.boost_multidex.DexHolder$DexBuffer@424171c8, index: 4, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/4.dex, size: 933880], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/4.odex, size: 0], type: 1
07-16 01:16:40.664 I/BoostMultiDex: Free space is enough: 2420289536, continue...
07-16 01:16:40.664 D/BoostMultiDex: Process holder, com.bytedance.boost_multidex.DexHolder$DexBuffer@424171c8, index: 4, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/4.dex, size: 933880], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/4.odex, size: 0]
07-16 01:16:40.964 I/BoostMultiDex: Put o key odex.checksum.odex.time.4 checksum=1000808, time=1594883800000
07-16 01:16:40.974 D/BoostMultiDex: Put info, 4 file is /data/data/com.test.packagename/files/boost_multidex/odex_cache/4.odex
07-16 01:16:40.974 I/BoostMultiDex: Cost time: 311412917, free space: 2420289536, reduced space: -1003520, holder: com.bytedance.boost_multidex.DexHolder$DexOpt@424189f0, index: 4, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/4.dex, size: 933880], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/4.odex, size: 1000808], force: false
07-16 01:16:40.974 I/BoostMultiDex: Blocking on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:40.974 I/BoostMultiDex: Acquired on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:40.974 I/BoostMultiDex: Released lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:40.974 I/BoostMultiDex: Free space is enough: 2419286016, continue...
07-16 01:16:40.974 D/BoostMultiDex: Process holder, com.bytedance.boost_multidex.DexHolder$DexOpt@424189f0, index: 4, [file: /data/data/com.test.packagename/files/boost_multidex/dex_cache/4.dex, size: 933880], [opt file: /data/data/com.test.packagename/files/boost_multidex/odex_cache/4.odex, size: 1000808], force: false
07-16 01:16:40.974 I/BoostMultiDex: Blocking on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:40.974 I/BoostMultiDex: Acquired on lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:40.974 I/BoostMultiDex: Released lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.prepare.lock
07-16 01:16:40.974 I/BoostMultiDex: Released lock /data/data/com.test.packagename/files/boost_multidex/boost_multidex.install.lock
07-16 01:16:40.984 I/BoostMultiDex: Exit quietly

机型信息(Testin上进行测试)

  • 品牌 samsung
  • 别名 Galaxy Grand Prime
  • 型号 SM-G5308W
  • 系统 android4.4.4
  • 屏幕尺寸 5
  • 分辨率 960*540
  • CPU 高通 骁龙410(MSM8916)
  • 核心数 4
  • 主频 1.2
  • RAM 0.9 GB

在一款4.4的机顶盒中运行崩溃了

我在一款机顶盒上运行的app中打算接入该库,根据文档接入并运行,程序不能正常的启动,输出如下信息:
11-15 20:03:29.881 6187-6187/? D/dalvikvm: Late-enabling CheckJNI
11-15 20:03:29.901 6187-6187/? E/Environment: canonicalPath = /mnt/sdcard
11-15 20:03:29.981 6187-6187/com.insight.tianwei I/BoostMultiDex: BoostMultiDex is installing, version is 1.0.1
11-15 20:03:29.981 6187-6187/com.insight.tianwei I/BoostMultiDex: VM with version 1.6.0 does not have support
11-15 20:03:29.981 6187-6187/com.insight.tianwei I/BoostMultiDex: Do checksum false
11-15 20:03:29.981 6187-6187/com.insight.tianwei I/BoostMultiDex: Trying to delete old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/MultiDex.lock of size 0
11-15 20:03:29.981 6187-6187/com.insight.tianwei I/BoostMultiDex: Deleted old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/MultiDex.lock
11-15 20:03:29.981 6187-6187/com.insight.tianwei I/BoostMultiDex: Trying to delete old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/com.insight.tianwei-1.apk.classes2.dex of size 8481488
11-15 20:03:29.991 6187-6187/com.insight.tianwei I/BoostMultiDex: Deleted old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/com.insight.tianwei-1.apk.classes2.dex
11-15 20:03:29.991 6187-6187/com.insight.tianwei I/BoostMultiDex: Trying to delete old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/com.insight.tianwei-1.apk.classes2.zip of size 3002715
11-15 20:03:29.991 6187-6187/com.insight.tianwei I/BoostMultiDex: Deleted old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/com.insight.tianwei-1.apk.classes2.zip
11-15 20:03:29.991 6187-6187/com.insight.tianwei I/BoostMultiDex: Trying to delete old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/com.insight.tianwei-1.apk.classes3.zip of size 4042344
11-15 20:03:29.991 6187-6187/com.insight.tianwei I/BoostMultiDex: Deleted old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/com.insight.tianwei-1.apk.classes3.zip
11-15 20:03:29.991 6187-6187/com.insight.tianwei I/BoostMultiDex: Trying to delete old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/com.insight.tianwei-1.apk.classes4.zip of size 1516205
11-15 20:03:30.001 6187-6187/com.insight.tianwei I/BoostMultiDex: Deleted old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/com.insight.tianwei-1.apk.classes4.zip
11-15 20:03:30.001 6187-6187/com.insight.tianwei I/BoostMultiDex: Trying to delete old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/com.insight.tianwei-1.apk.classes3.dex of size 10922480
11-15 20:03:30.001 6187-6187/com.insight.tianwei I/BoostMultiDex: Deleted old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/com.insight.tianwei-1.apk.classes3.dex
11-15 20:03:30.001 6187-6187/com.insight.tianwei I/BoostMultiDex: Trying to delete old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/com.insight.tianwei-1.apk.classes4.dex of size 4467704
11-15 20:03:30.011 6187-6187/com.insight.tianwei I/BoostMultiDex: Deleted old file /data/data/com.insight.tianwei/code_cache/secondary-dexes/com.insight.tianwei-1.apk.classes4.dex
11-15 20:03:30.011 6187-6187/com.insight.tianwei I/BoostMultiDex: Blocking on lock /data/data/com.insight.tianwei/files/boost_multidex/boost_multidex.prepare.lock
11-15 20:03:30.011 6187-6187/com.insight.tianwei I/BoostMultiDex: Acquired on lock /data/data/com.insight.tianwei/files/boost_multidex/boost_multidex.prepare.lock
11-15 20:03:30.011 6187-6187/com.insight.tianwei I/BoostMultiDex: Blocking on lock /data/data/com.insight.tianwei/files/boost_multidex/boost_multidex.install.lock
11-15 20:03:30.011 6187-6187/com.insight.tianwei I/BoostMultiDex: Acquired on lock /data/data/com.insight.tianwei/files/boost_multidex/boost_multidex.install.lock
11-15 20:03:30.011 6187-6187/com.insight.tianwei I/BoostMultiDex: Released lock /data/data/com.insight.tianwei/files/boost_multidex/boost_multidex.prepare.lock
11-15 20:03:30.371 6187-6187/com.insight.tianwei D/dalvikvm: GC_FOR_ALLOC freed 820K, 23% free 4551K/5896K, paused 22ms, total 23ms
11-15 20:03:30.561 6187-6187/com.insight.tianwei D/dalvikvm: GC_FOR_ALLOC freed 384K, 8% free 5451K/5924K, paused 22ms, total 22ms
11-15 20:03:30.791 6187-6187/com.insight.tianwei D/dalvikvm: GC_FOR_ALLOC freed 455K, 8% free 6575K/7124K, paused 27ms, total 27ms
11-15 20:03:31.061 6187-6187/com.insight.tianwei D/dalvikvm: GC_FOR_ALLOC freed 583K, 9% free 7921K/8624K, paused 33ms, total 33ms
11-15 20:03:31.391 6187-6187/com.insight.tianwei D/dalvikvm: GC_FOR_ALLOC freed 678K, 8% free 9596K/10420K, paused 41ms, total 41ms
11-15 20:03:31.791 6187-6187/com.insight.tianwei D/dalvikvm: GC_FOR_ALLOC freed 882K, 9% free 11587K/12652K, paused 48ms, total 48ms
11-15 20:03:31.931 6187-6187/com.insight.tianwei D/dalvikvm: Trying to load lib /data/app-lib/com.insight.tianwei-2/libboost_multidex.so 0x42739f80
11-15 20:03:31.931 6187-6187/com.insight.tianwei D/dalvikvm: Added shared lib /data/app-lib/com.insight.tianwei-2/libboost_multidex.so 0x42739f80
11-15 20:03:31.931 6187-6187/com.insight.tianwei I/BoostMultiDex: VM lib is libdvm.so
11-15 20:03:31.931 6187-6187/com.insight.tianwei I/BOOST_MULTIDEX.NATIVE: set action successfully
11-15 20:03:31.931 6187-6187/com.insight.tianwei A/libc: stack corruption detected
11-15 20:03:31.931 6187-6187/com.insight.tianwei A/libc: Fatal signal 6 (SIGABRT) at 0x0000182b (code=-6), thread 6187 (insight.tianwei)

第一个issues,版本号呢?

第一个issues,我来占个坑哈
dependencies { ... ... implementation 'com.bytedance.boost_multidex:boost_multidex:${ARTIFACT_VERSION}' }
ARTIFACT_VERSION 版本是多少?放在哪个仓库里面?maven里没有

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.