MTK Android13 user版本进入engineermode的Bluetooth测试项时闪退

平台:MT6771 android13

问题描述:进入到工模,点击进入Bluetooth测试项直接闪退

Log如下:

复制代码
07-31 10:15:51.480  3605  3605 D EM/EmUtils: getEmAidlService ...
07-31 10:15:51.481   398   398 I servicemanager: Could not find vendor.mediatek.hardware.engineermode.IEmds/default in the VINTF manifest.
07-31 10:15:51.481  3605  3605 D EM/EmHalService: btIsEmSupport by HIDL
07-31 10:15:51.481  3605  3605 V EM/EmUtils: getEmHidlService ...
07-31 10:15:51.481  3605  3605 V EM/EmUtils: getEmHidlService init...
07-31 10:15:51.482   399   399 I hwservicemanager: getTransport: Cannot find entry vendor.mediatek.hardware.engineermode@1.3::IEmd/EmHidlServer in either framework or device VINTF manifest.
07-31 10:15:51.482  3605  3605 W System.err: java.util.NoSuchElementException
07-31 10:15:51.482  3605  3605 W System.err: 	at android.os.HwBinder.getService(Native Method)
07-31 10:15:51.482  3605  3605 W System.err: 	at vendor.mediatek.hardware.engineermode.V1_3.IEmd.getService(IEmd.java:57)
07-31 10:15:51.482  3605  3605 W System.err: 	at com.mediatek.engineermode.EmUtils.getEmHidlService(EmUtils.java:179)
07-31 10:15:51.482  3605  3605 W System.err: 	at com.mediatek.engineermode.EmHalService.btIsEmSupport(EmHalService.java:597)
07-31 10:15:51.482  3605  3605 W System.err: 	at com.mediatek.engineermode.FeatureSupport.isEmBTSupport(FeatureSupport.java:244)
07-31 10:15:51.482  3605  3605 W System.err: 	at com.mediatek.engineermode.bluetooth.BtList.onCreate(BtList.java:93)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.app.Activity.performCreate(Activity.java:8290)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.app.Activity.performCreate(Activity.java:8269)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1384)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3697)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3853)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2345)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.os.Handler.dispatchMessage(Handler.java:106)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.os.Looper.loopOnce(Looper.java:201)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.os.Looper.loop(Looper.java:288)
07-31 10:15:51.482  3605  3605 W System.err: 	at android.app.ActivityThread.main(ActivityThread.java:7941)
07-31 10:15:51.482  3605  3605 W System.err: 	at java.lang.reflect.Method.invoke(Native Method)
07-31 10:15:51.482  3605  3605 W System.err: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:569)
07-31 10:15:51.482  3605  3605 W System.err: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1015)
07-31 10:15:51.482  3605  3605 E EM/EmUtils: EmHIDLConnection exception2 ...
07-31 10:15:51.483  3605  3605 D AndroidRuntime: Shutting down VM
07-31 10:15:51.483  3605  3605 E AndroidRuntime: FATAL EXCEPTION: main
07-31 10:15:51.483  3605  3605 E AndroidRuntime: Process: com.mediatek.engineermode, PID: 3605
07-31 10:15:51.483  3605  3605 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mediatek.engineermode/com.mediatek.engineermode.bluetooth.BtList}: java.lang.NullPointerException: Attempt to invoke interface method 'int vendor.mediatek.hardware.engineermode.V1_3.IEmd.btIsEmSupport()' on a null object reference
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3716)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3853)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2345)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:201)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:288)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7941)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:569)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1015)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'int vendor.mediatek.hardware.engineermode.V1_3.IEmd.btIsEmSupport()' on a null object reference
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at com.mediatek.engineermode.EmHalService.btIsEmSupport(EmHalService.java:597)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at com.mediatek.engineermode.FeatureSupport.isEmBTSupport(FeatureSupport.java:244)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at com.mediatek.engineermode.bluetooth.BtList.onCreate(BtList.java:93)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:8290)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:8269)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1384)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3697)
07-31 10:15:51.483  3605  3605 E AndroidRuntime: 	... 12 more
07-31 10:15:51.485  1190  1600 I mtkpower_client: [Legacy][PowerHal_Wrap_notifyAppState] com.mediatek.engineermode/com.mediatek.engineermode pid=3605 state:3

从日志咱们可以看到:

c 复制代码
servicemanager: Could not find vendor.mediatek.hardware.engineermode.IEmds/default in the VINTF manifest.

很明显这个服务没有注册,找到编译规则s0_vnd/device/mediatek/vendor/common/device.mk,可以看到以下:

c 复制代码
ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug),)
DEVICE_MANIFEST_FILE += $(LOCAL_PATH)/project_manifest/manifest_em.xml
PRODUCT_PACKAGES += em_hidl

可以看到只有在编译eng,userdebug版本时会编译em_hidl,那在编译规则中加上user即可解决这个问题

c 复制代码
-      ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug),)
+      ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug user),)
        DEVICE_MANIFEST_FILE += $(LOCAL_PATH)/project_manifest/manifest_em.xml
        PRODUCT_PACKAGES += em_hidl
      endif
相关推荐
一笑的小酒馆32 分钟前
Android性能优化之截屏时黑屏卡顿问题
android
懒人村杂货铺3 小时前
Android BLE 扫描完整实战
android
TeleostNaCl5 小时前
如何安装 Google 通用的驱动以便使用 ADB 和 Fastboot 调试(Bootloader)设备
android·经验分享·adb·android studio·android-studio·android runtime
fatiaozhang95276 小时前
中国移动浪潮云电脑CD1000-系统全分区备份包-可瑞芯微工具刷机-可救砖
android·网络·电脑·电视盒子·刷机固件·机顶盒刷机
2501_915918417 小时前
iOS 开发全流程实战 基于 uni-app 的 iOS 应用开发、打包、测试与上架流程详解
android·ios·小程序·https·uni-app·iphone·webview
lichong9517 小时前
【混合开发】vue+Android、iPhone、鸿蒙、win、macOS、Linux之dist打包发布在Android工程asserts里
android·vue.js·iphone
Android出海7 小时前
Android 15重磅升级:16KB内存页机制详解与适配指南
android·人工智能·新媒体运营·产品运营·内容运营
一只修仙的猿7 小时前
毕业三年后,我离职了
android·面试
编程乐学8 小时前
安卓非原创--基于Android Studio 实现的新闻App
android·ide·android studio·移动端开发·安卓大作业·新闻app
雅雅姐9 小时前
Android14 init.rc中on boot阶段操作4
android