MiEcosystem / miot-spec-doc

41 stars 19 forks source link

在通过反射调用LanHostRuntime的newInstance方法时发生Crash #14

Open KKKKKuang opened 5 years ago

KKKKKuang commented 5 years ago

由于设备内存紧张,需要把miot和另外一个进程进行合并,而合并之后就会发生crash

AAR版本为1.2.9 android系统版本为5.1

03-29 14:51:30.596 15483-15483/? V/SettingsInterface: invalidate [system]: current 4 != cached 0 03-29 14:51:30.597 15483-15483/? D/ActivityThread: hoder:android.app.IActivityManager$ContentProviderHolder@18b9cbb9,provider,holder.Provider:android.content.ContentProviderProxy@2d444bfe 03-29 14:51:30.608 15483-15483/? W/ResourcesManager: Asset path '/system/framework/tinkerwrapper-lib.jar' does not exist or contains no resources. 03-29 14:51:30.611 15483-15483/com.banyac.midrive.launcher:miot D/Proxy: setHttpRequestCheckHandler 03-29 14:51:30.614 15483-15483/com.banyac.midrive.launcher:miot W/art: Failed to find OatDexFile for DexFile /system/app/MidriveLauncher/MidriveLauncher.apk ( canonical path /system/app/MidriveLauncher/MidriveLauncher.apk) with checksum 0xfd6219b4 in OatFile /system/app/MidriveLauncher/arm64/MidriveLauncher.odex 03-29 14:51:31.003 15483-15483/com.banyac.midrive.launcher:miot W/Tinker.TinkerLoader: tryLoadPatchFiles:patch dir not exist:/data/data/com.banyac.midrive.launcher/tinker 03-29 14:51:31.004 15483-15483/com.banyac.midrive.launcher:miot D/Tinker: OK 03-29 14:51:31.006 15483-15483/com.banyac.midrive.launcher:miot W/Tinker.Tinker: tinker patch directory: /data/data/com.banyac.midrive.launcher/tinker 03-29 14:51:31.010 15483-15483/com.banyac.midrive.launcher:miot I/Tinker.Tinker: try to install tinker, isEnable: true, version: 1.7.8 03-29 14:51:31.010 15483-15483/com.banyac.midrive.launcher:miot I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:-2, process name:com.banyac.midrive.launcher:miot, main process:false, systemOTA:false, oatDir:null, useInterpretMode:false 03-29 14:51:31.010 15483-15483/com.banyac.midrive.launcher:miot W/Tinker.TinkerLoadResult: can't find patch file, is ok, just return 03-29 14:51:31.010 15483-15483/com.banyac.midrive.launcher:miot I/Tinker.DefaultLoadReporter: patch loadReporter onLoadResult: patch load result, path:/data/data/com.banyac.midrive.launcher/tinker, code: -2, cost: 3ms 03-29 14:51:31.010 15483-15483/com.banyac.midrive.launcher:miot W/Tinker.Tinker: tinker load fail! 03-29 14:51:31.011 15483-15483/com.banyac.midrive.launcher:miot D/TinkerWrapper: [TinkerWrapper.java: 34] init done 03-29 14:51:31.021 15483-15483/com.banyac.midrive.launcher:miot D/SwitchAppsManager: version=1.0,APP_VERSION=1.0 03-29 14:51:31.022 15483-15483/com.banyac.midrive.launcher:miot D/SwitchAppsManager: appsNumber=13 03-29 14:51:31.052 15483-15483/com.banyac.midrive.launcher:miot D/ActivityThread: BIND_APPLICATION handled : 0 / AppBindData{appInfo=ApplicationInfo{b36b1e3 com.banyac.midrive.launcher}} 03-29 14:51:31.054 15483-15483/com.banyac.midrive.launcher:miot D/ActivityThread: SVC-Creating service: CreateServiceData{token=android.os.BinderProxy@290f17e0 className=com.xiaomi.miot.host.service.MiotHostService packageName=com.banyac.midrive.launcher intent=null} 03-29 14:51:31.054 15483-15483/com.banyac.midrive.launcher:miot D/MiotHostService: onCreate 03-29 14:51:31.069 15483-15483/com.banyac.midrive.launcher:miot D/HostRuntimeManager: initialize: miot -> LanHostRuntime 03-29 14:51:31.069 15483-15483/com.banyac.midrive.launcher:miot D/HostRuntimeManager: createInstance: LanHostRuntime 03-29 14:51:31.070 15483-15483/com.banyac.midrive.launcher:miot W/System.err: java.lang.NoSuchMethodException: newInstance [class android.content.Context] 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at java.lang.Class.getMethod(Class.java:664) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at java.lang.Class.getMethod(Class.java:643) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at com.xiaomi.miot.host.runtime.HostRuntimeManager.createInstance(HostRuntimeManager.java:124) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at com.xiaomi.miot.host.runtime.HostRuntimeManager.initialize(HostRuntimeManager.java:40) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at com.xiaomi.miot.host.service.MiotHostServiceImpl.initialize(MiotHostServiceImpl.java:65) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at com.xiaomi.miot.host.service.MiotHostService.onCreate(MiotHostService.java:20) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at android.app.ActivityThread.handleCreateService(ActivityThread.java:3012) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at android.app.ActivityThread.access$1800(ActivityThread.java:179) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1556) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at android.os.Handler.dispatchMessage(Handler.java:111) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at android.os.Looper.loop(Looper.java:200) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5661) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at java.lang.reflect.Method.invoke(Native Method) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at java.lang.reflect.Method.invoke(Method.java:372) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:982) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:777) 03-29 14:51:31.071 15483-15483/com.banyac.midrive.launcher:miot D/AndroidRuntime: Shutting down VM 03-29 14:51:31.076 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: BOARD : unknown 03-29 14:51:31.076 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: BOOTLOADER : unknown 03-29 14:51:31.076 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: BRAND : alps 03-29 14:51:31.076 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: CPU_ABI : arm64-v8a 03-29 14:51:31.076 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: CPU_ABI2 : 03-29 14:51:31.076 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: DEVICE : bya8665_spm_l 03-29 14:51:31.076 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: DISPLAY : full_bya8665_spm_l-userdebug 5.1 LMY47D 1544174301 release-keys 03-29 14:51:31.076 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: FINGERPRINT : alps/full_bya8665_spm_l/bya8665_spm_l:5.1/LMY47D/1544174301:userdebug/release-keys 03-29 14:51:31.076 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: HARDWARE : mt6735 03-29 14:51:31.076 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: HOST : ubuntu-PowerEdge-R730 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: ID : LMY47D 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: IS_DEBUGGABLE : true 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: MANUFACTURER : alps 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: MODEL : Midrive M02 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: PRODUCT : full_bya8665_spm_l 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: RADIO : unknown 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: SERIAL : AA00028081832300159 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: SUPPORTED_32_BIT_ABIS : [Ljava.lang.String;@2bf39a99 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: SUPPORTED_64_BIT_ABIS : [Ljava.lang.String;@2c98893f 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: SUPPORTED_ABIS : [Ljava.lang.String;@1c7dd20c 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: TAG : Build 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: TAGS : release-keys 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: TIME : 1544174472000 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: TYPE : userdebug 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: UNKNOWN : unknown 03-29 14:51:31.077 15483-15483/com.banyac.midrive.launcher:miot D/BanyaFrameworkCrashHandler: USER : jenkins 03-29 14:51:31.078 15483-15483/com.banyac.midrive.launcher:miot E/AndroidRuntime: SUPPORTED_64_BIT_ABIS=[Ljava.lang.String;@2c98893f versionCode=30 BOARD=unknown BOOTLOADER=unknown TYPE=userdebug ID=LMY47D TIME=1544174472000 BRAND=alps TAG=Build SERIAL=AA00028081832300159 HARDWARE=mt6735 SUPPORTED_ABIS=[Ljava.lang.String;@1c7dd20c CPU_ABI=arm64-v8a RADIO=unknown IS_DEBUGGABLE=true MANUFACTURER=alps SUPPORTED_32_BIT_ABIS=[Ljava.lang.String;@2bf39a99 TAGS=release-keys CPU_ABI2= UNKNOWN=unknown USER=jenkins FINGERPRINT=alps/full_bya8665_spm_l/bya8665_spm_l:5.1/LMY47D/1544174301:userdebug/release-keys HOST=ubuntu-PowerEdge-R730 PRODUCT=full_bya8665_spm_l versionName=1.1.30 DISPLAY=full_bya8665_spm_l-userdebug 5.1 LMY47D 1544174301 release-keys MODEL=Midrive M02 DEVICE=bya8665_spm_l java.lang.RuntimeException: Unable to create service com.xiaomi.miot.host.service.MiotHostService: java.lang.RuntimeException at android.app.ActivityThread.handleCreateService(ActivityThread.java:3022) at android.app.ActivityThread.access$1800(ActivityThread.java:179) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1556) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:200) at android.app.ActivityThread.main(ActivityThread.java:5661) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:982) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:777) Caused by: java.lang.RuntimeException at com.xiaomi.miot.host.runtime.HostRuntimeManager.createInstance(HostRuntimeManager.java:138) at com.xiaomi.miot.host.runtime.HostRuntimeManager.initialize(HostRuntimeManager.java:40) at com.xiaomi.miot.host.service.MiotHostServiceImpl.initialize(MiotHostServiceImpl.java:65) at com.xiaomi.miot.host.service.MiotHostService.onCreate(MiotHostService.java:20) at android.app.ActivityThread.handleCreateService(ActivityThread.java:3012) at android.app.ActivityThread.access$1800(ActivityThread.java:179)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1556)  at android.os.Handler.dispatchMessage(Handler.java:111)  at android.os.Looper.loop(Looper.java:200)  at android.app.ActivityThread.main(ActivityThread.java:5661)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:982)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:777)  java.lang.RuntimeException at com.xiaomi.miot.host.runtime.HostRuntimeManager.createInstance(HostRuntimeManager.java:138) at com.xiaomi.miot.host.runtime.HostRuntimeManager.initialize(HostRuntimeManager.java:40) at com.xiaomi.miot.host.service.MiotHostServiceImpl.initialize(MiotHostServiceImpl.java:65) at com.xiaomi.miot.host.service.MiotHostService.onCreate(MiotHostService.java:20) at android.app.ActivityThread.handleCreateService(ActivityThread.java:3012) at android.app.ActivityThread.access$1800(ActivityThread.java:179) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1556) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:200) at android.app.ActivityThread.main(ActivityThread.java:5661) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:982) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:777) 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: BOARD : unknown 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: BOOTLOADER : unknown 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: BRAND : alps 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: CPU_ABI : arm64-v8a 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: CPU_ABI2 : 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: DEVICE : bya8665_spm_l 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: DISPLAY : full_bya8665_spm_l-userdebug 5.1 LMY47D 1544174301 release-keys 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: FINGERPRINT : alps/full_bya8665_spm_l/bya8665_spm_l:5.1/LMY47D/1544174301:userdebug/release-keys 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: HARDWARE : mt6735 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: HOST : ubuntu-PowerEdge-R730 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: ID : LMY47D 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: IS_DEBUGGABLE : true 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: MANUFACTURER : alps 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: MODEL : Midrive M02 03-29 14:51:31.597 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: PRODUCT : full_bya8665_spm_l 03-29 14:51:31.598 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: RADIO : unknown 03-29 14:51:31.598 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: SERIAL : AA00028081832300159 03-29 14:51:31.598 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: SUPPORTED_32_BIT_ABIS : [Ljava.lang.String;@2bf39a99 03-29 14:51:31.598 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: SUPPORTED_64_BIT_ABIS : [Ljava.lang.String;@2c98893f 03-29 14:51:31.598 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: SUPPORTED_ABIS : [Ljava.lang.String;@1c7dd20c 03-29 14:51:31.598 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: TAG : Build 03-29 14:51:31.598 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: TAGS : release-keys 03-29 14:51:31.598 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: TIME : 1544174472000 03-29 14:51:31.598 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: TYPE : userdebug 03-29 14:51:31.598 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: UNKNOWN : unknown 03-29 14:51:31.598 15483-15483/com.banyac.midrive.launcher:miot D/CrashHandler: USER : jenkins

wangchongwhut commented 5 years ago

你是怎么进行进程合并了,没有合并之前调用miot sdk有没有问题

KKKKKuang commented 5 years ago

1.你是怎么进行进程合并了

比如说设备上存在A应用和miot应用,合并的过程就是把niot应用的代码copy到A应用里面

2.在没有合并之前是没有问题的

wangchongwhut commented 5 years ago

最新版本已经修改了,去除了反射相关代码,可联系米家产品经理获取最新的SDK。