始料未及的问题:
平常的一天,平常的按照项目需求预制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

6602

被折叠的 条评论
为什么被折叠?



