一、问题
PhoneWindowManager.java里面调用了第三方jar的接口,编译通过,生成services.jar,push进去,运行时找不到jar包,而jar包明明在/vendor/framework/com.mstar.android.jar
错误log,如下,
Caused by: java.lang.ClassNotFoundException: Didn’t find class “com.mstar.android.tvapi.common.TvManager” on path: DexPathList[[zip file “/system/framework/services.jar”, zip file “/system/framework/ethernet-service.jar”, zip file “/system/framework/wifi-service.jar”, zip file “/system/framework/pppoe-service.jar”],nativeLibraryDirectories=[/system/lib64, /vendor/lib64, /system/lib64, /vendor/lib64]]
二、解决
1、如果是一般的apk,则在AndroidManifest.xml,声明<uses-library android:name="com.mstar.android" />
即可
2、services.jar是系统服务,找不到AndroidManifest.xml
修改文件build/make/core/dex_preopt.mk,增加一行
PRODUCT_SYSTEM_SERVER_CLASSPATH := $(PRODUCT_SYSTEM_SERVER_CLASSPATH):/vendor/framework/com.mstar.android.jar
重新编译烧录即可