Android 11预制第三方应用无法打开崩溃(签名)

始料未及的问题:


平常的一天,平常的按照项目需求预制UC,设置成默认浏览器,开机~嗯看着APP图标在呢,打开,确认协议,然后就卡住了,emmm?what?然后它就崩了(…)抓完logcat提示如下:
莫名奇妙的崩溃
这个报错看了半天,完全没看懂!网上查了半天也没找到相关的。但看起来应该是跟LIB库有关,而且打开APP并没有赋予正确的权限,在权限设置里为空!

解决:


中间在Android.mk各种修改编译规则,甚至默认赋予应用权限,虽然权限有了,但库这块还是崩了…
直到查询到build/make/core/app_prebuilt_internal.mk内uncompress-prebuilt-embedded-jni-libs项,
想到预制APP把SO库提取出来,于是这么操作:

--- a/vendor/mediatek/proprietary/packages/3rd-party/QuarkBrowser/Android.mk
+++ b/vendor/mediatek/proprietary/packages/3rd-party/QuarkBrowser/Android.mk
@@ -1,4 +1,13 @@
 LOCAL_PATH := $(call my-dir)
+
+define get-all-libraries-module-name-in-subdirs
+$(sort $(shell cd $(LOCAL_PATH) ; find -L $(1) -name "*.so"))
+endef
+
+ALL_LIBRARIES_MODULE_NAME := $(call get-all-libraries-module-name-in-subdirs, lib/armeabi-v7a)
+
+$(warning ALL_LIBRARIES_MODULE_NAME:---  $(ALL_LIBRARIES_MODULE_NAME) )
+
 include $(CLEAR_VARS)

 LOCAL_MODULE := QuarkBrowser
@@ -9,5 +18,7 @@ LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
 #LOCAL_CERTIFICATE := platform
 LOCAL_CERTIFICATE := PRESIGNED
 LOCAL_PRIVILEGED_MODULE := false
 LOCAL_MULTILIB := both
+LOCAL_PREBUILT_JNI_LIBS_arm := $(ALL_LIBRARIES_MODULE_NAME)
 include $(BUILD_PREBUILT)

这里贴的是夸克浏览器的预制mk文件,问题跟UC一致。将APK重命名为rar,解压拿出里面的so库,apk同一级目录添加
lib/armeabi-v7a存放这些so库文件。这里文件夹名与解压出来一致。mk里的规则也根据实际解压的a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值