异常Log:
01-01 07:05:18.156: W/System(9653): ClassLoader referenced unknown path: /system/framework/ConnectivityExt.jar
01-01 07:05:18.161: W/System(9653): ClassLoader referenced unknown path: /system/priv-app/QtiTetherService/lib/arm
01-01 07:05:18.169: I/art(9653): Rejecting re-init on previously-failed class java.lang.Class<com.qualcomm.qti.tetherservice.TetherService$1>
01-01 07:05:18.169: I/art(9653): Rejecting re-init on previously-failed class java.lang.Class<com.qualcomm.qti.tetherservice.TetherService$1>
01-01 07:05:18.183: I/art(9653): Rejecting re-init on previously-failed class java.lang.Class<com.qualcomm.qti.tetherservice.TetherService$1>
01-01 07:05:18.183: D/AndroidRuntime(9653): Shutting down VM
01-01 07:05:18.184: E/AndroidRuntime(9653): FATAL EXCEPTION: main
01-01 07:05:18.184: E/AndroidRuntime(9653): Process: com.qualcomm.qti.tetherservice, PID: 9653
01-01 07:05:18.184: E/AndroidRuntime(9653): java.lang.NoClassDefFoundError: com.qualcomm.qti.tetherservice.TetherService$1
01-01 07:05:18.184: E/AndroidRuntime(9653): at com.qualcomm.qti.tetherservice.TetherService.<init>(TetherService.java:77)
01-01 07:05:18.184: E/AndroidRuntime(9653): at java.lang.Class.newInstance(Native Method)
01-01 07:05:18.184: E/AndroidRuntime(9653): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2859)
01-01 07:05:18.184: E/AndroidRuntime(9653): at android.app.ActivityThread.access$1900(ActivityThread.java:150)
01-01 07:05:18.184: E/AndroidRuntime(9653): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1427)
01-01 07:05:18.184: E/AndroidRuntime(9653): at android.os.Handler.dispatchMessage(Handler.java:102)
01-01 07:05:18.184: E/AndroidRuntime(9653): at android.os.Looper.loop(Looper.java:148)
01-01 07:05:18.184: E/AndroidRuntime(9653): at android.app.ActivityThread.main(ActivityThread.java:5417)
01-01 07:05:18.184: E/AndroidRuntime(9653): at java.lang.reflect.Method.invoke(Native Method)
01-01 07:05:18.184: E/AndroidRuntime(9653): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
01-01 07:05:18.184: E/AndroidRuntime(9653): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
01-01 07:05:18.187: W/ActivityManager(1279): Process com.qualcomm.qti.tetherservice has crashed too many times: killing!

从log中分析可能是ConnectivityExt.jar这个包没有引入,到/system/framework下一查看,果真如此。将这个jar包push到手机/system/framework目录,就不再crash了。

由于刚添加了自己的产品目录,猜测应该是相关的mk没有改好。源码中搜索了下,导入ConnectivityExt.jar的mk为
vendor/qcom/proprietary/prebuilt_HY11/target/product/msm8226/prebuilt.mk,在此添加打印发现没有输出,那就是这里没有执行了。

继续往上查找,引用prebuilt.mk的为vendor/qcom/proprietary/common/config/device-vendor

ifneq (, $(filter $(PRODUCT_LIST), $(TARGET_PRODUCT)))***#include device/qcom/$(TARGET_PRODUCT)/BoardConfig.mkfile = device/qcom/$(TARGET_PRODUCT)/BoardConfig.mkifeq ($(file), $(wildcard $(file)))include device/qcom/$(TARGET_PRODUCT)/BoardConfig.mkelseinclude vendor/koko/$(TARGET_PRODUCT)/BoardConfig.mkendif***ifeq ($(call is-board-platform,msm8660),true)PREBUILT_BOARD_PLATFORM_DIR := msm8660_surfelse ifeq ($(TARGET_PRODUCT),msm8625)PREBUILT_BOARD_PLATFORM_DIR := msm8625else ifeq ($(TARGET_PRODUCT),mpq8064)PREBUILT_BOARD_PLATFORM_DIR := mpq8064elsePREBUILT_BOARD_PLATFORM_DIR := $(TARGET_BOARD_PLATFORM)endif$(call inherit-product-if-exists, $(QC_PROP_ROOT)/common-noship/etc/device-vendor-noship.mk)$(call inherit-product-if-exists, $(QC_PROP_ROOT)/prebuilt_grease/target/product/$(PREBUILT_BOARD_PLATFORM_DIR)/prebuilt.mk)$(call inherit-product-if-exists, $(QC_PROP_ROOT)/prebuilt_HY11/target/product/$(PREBUILT_BOARD_PLATFORM_DIR)/prebuilt.mk)$(call inherit-product-if-exists, $(QC_PROP_ROOT)/prebuilt_HY22/target/product/$(PREBUILT_BOARD_PLATFORM_DIR)/prebuilt.mk)

从源码中调用inherit-prouct-if-exists来引入prebuilt.mk,那如果判断不存在,也就不引入了。在这里我们看到引用了变量PREBUILT_BOARD_PLATFORM_DIR,这是在上面代码的if–elseif–else中获取的。is-board-platform判断当前的boardplatform是否匹配,而当前的boardplatform又是通过include device/qcom/$(TARGET_PRODUCT)/BoardConfig.mk引入。看到这里就发现了问题,原来这里目录指定为了device/qcom/…..,而我的product则是新建在了vendor/koko/下了,难怪找不到了。
按照源码中* *部分做了修改,重新编译烧录,顺利引用。

高通平台添加自己的product后com.qualcomm.qti.tetherservice不停crash相关推荐

  1. 高通平台添加或者移植一个完整的camera

    OV8865 1.kernel部分: A.kernel_driver: 把驱动文件ov8865_qtech_f8865ac.c 放到kernel/drivers/media/platform/msm/ ...

  2. 高通平台添加屏幕驱动

    添加LK显示屏代码 修改/bootable/bootloader/lk/target/msm8952/oem_panel.c 添加屏幕厂家提供的驱动头文件,例: 将头文件添加到bootable/boo ...

  3. 高通平台启动log概述(PBL log、sbl1 log、kernel log)

    高通平台启动log概述(PBL log.sbl1 log.kernel log) 在嵌入式linux的调试过程中log有着至关重要的地位,等同于医生的CT报告.能够熟悉启动各个阶段的log,如PBL阶 ...

  4. 高通平台开发环境搭建、编译、烧录(android5.1以上系统)

    高通平台开发环境搭建.编译.烧录(android5.1以上系统) 以MSN8937为例 1. 安装Ubuntu(12.04LTS以上稳定版本)     安装过程中必须以根用户登录或使用sudo获取ro ...

  5. 高通平台环境搭建,编译,系统引导流程分析 .

    1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通开发板上烧录文件系统 建立高通平台开发环境 高通平台,android和 modem 编译流程分析 高通平台 7620 启动流 ...

  6. 高通平台第一帧splash和Bootanimation修改

    高通平台第一帧splash和Bootanimation A.Splash image/第一帧图像/开机logo(有很多叫法,但比较官方的一般叫bootloader logo或者LK display l ...

  7. Android高通平台调试Camera驱动全纪录

    项目比较紧,3周内把一个带有外置ISP,MIPI数据通信,800万像素的camera从无驱动到实现客户全部需求. 1日 搭平台,建环境,编译内核,烧写代码. 我是一直在Window下搭个虚拟机登服务器 ...

  8. 高通平台耳机类型识别

    耳机类型 耳机类型一般有两种:3段式耳机和4段式耳机.其中4段式耳机又分为欧标和美标. 3段耳机:线序分别为,L,R,G,没有MIC端,所以三段耳机无法使用麦克风,只能接受声音,另外,三段耳机L,R线 ...

  9. 高通平台调试Nxp Smart PA-TFA9897

    前言 新项目对speaker的输出响度和声音质量有一定的要求,所有选择了Nxp smart PA-TFA9897,其实高通平台有WSA系列的smart PA,由于后期tuning的复杂性,选择了Nxp ...

  10. 高通平台耳机知识记录

    一. 在高通平台中,默认使用内部codec的时候,耳机的输出及控制都是在内部codec中进行的,所以,可以想象得到,耳机的整个初始化起源过程,是在codec的初始化中.高通平台的machine驱动文件 ...

最新文章

  1. 在Java连接hbase时出现的问题
  2. 微信小程序获取用户手机号,后端php实现 (前后端完整代码附效果图)
  3. (chap1 网络基础知识)OSI参考模型举例
  4. 安装 并且使用_安装密封圈的注意事项
  5. OpenCV透视变换应用于图像的实例(附完整源代码)
  6. php手机电子相册,免费电子相册制作软件 手机电子相册制作软件
  7. BIC无代码绘制差异基因火山图
  8. WordPress主题-The7 v9.16.0主题模板
  9. $(document).ready(function(){});不执行
  10. Java 算法 S01串
  11. ISO/IEC 27017:2015 标准信息安全策略
  12. SRS开启FLV播放
  13. Flutter之国际化语言
  14. arcgis打开Excel文件显示没有注册类的解决方案
  15. 深度图像修复的回顾和改进:使用生成对抗网络基于Patch的图像修复
  16. ECBS多机器人路径规划
  17. 脚踏实地小组的抓包实验
  18. UDS中数据的存储(FLASH/EEPROM/RAM)
  19. (SEED-Lab) ARP Cache Poisoning Attack Lab
  20. 第十期 路由器调试之HelloWorld 《路由器就是开发板》

热门文章

  1. STM32状态机编程----什么是状态机?
  2. Vaa3d_DIADEM metric基本介绍_SWC拓扑结构量纲
  3. 汉王手写板linux驱动下载,汉王笔手写板驱动程序
  4. 封装日期格式化(dataFormat)
  5. ma5200f设置使用用户名、密码登陆
  6. 试简述smtp通信的三个阶段的过程_对通信技术来说,物联网起了什么样的作用?...
  7. 【显示器知识 帮新手扫盲+自我总结】
  8. 【计算机视觉】Lecture 3:线性算子
  9. blender快捷键记录-基本所有场景通用
  10. 用过的几款步进电机驱动IC