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

本文主要是介绍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

从日志咱们可以看到:

servicemanager: Could not find vendor.mediatek.hardware.engineermode.IEmds/default in the VINTF manifest.

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

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即可解决这个问题

-      ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug),)
+      ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug user),)DEVICE_MANIFEST_FILE += $(LOCAL_PATH)/project_manifest/manifest_em.xmlPRODUCT_PACKAGES += em_hidlendif

这篇关于MTK Android13 user版本进入engineermode的Bluetooth测试项时闪退的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/489125

相关文章

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

查看MySQL数据库版本的四种方法

《查看MySQL数据库版本的四种方法》查看MySQL数据库的版本信息可以通过多种方法实现,包括使用命令行工具、SQL查询语句和图形化管理工具等,以下是详细的步骤和示例代码,需要的朋友可以参考下... 目录方法一:使用命令行工具1. 使用 mysql 命令示例:方法二:使用 mysqladmin 命令示例:方

Java版本不兼容问题详细解决方案步骤

《Java版本不兼容问题详细解决方案步骤》:本文主要介绍Java版本不兼容问题解决的相关资料,详细分析了问题原因,并提供了解决方案,包括统一JDK版本、修改项目配置和清理旧版本残留等步骤,需要的朋... 目录错误原因分析解决方案步骤第一步:统一 JDK 版本第二步:修改项目配置第三步:清理旧版本残留兼容性对

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境