当前位置:主页 > 查看内容

android9系统android studio项目改成用android.mk编译引用v7包第

发布时间:2021-05-20 00:00| 位朋友查看

简介:android9系统android studio项目改成用android.mk编译引用v7包第三方jar包aar文件和so库文件 原文件在\vendor\..\package\DVR 打包apk在\out\target\product\msm8953_64\system\app\DVR ? 项目放进系统中编译 前提是APP 本身已能正常在对应系统中使用了 只是……

android9系统android studio项目改成用android.mk编译引用v7包第三方jar包,aar文件和so库文件

原文件在:\vendor\..\package\DVR

打包apk在:\out\target\product\msm8953_64\system\app\DVR

?

项目放进系统中编译前提是APP 本身已能正常在对应系统中使用了,只是现在需要用mmm编译到系统包中

?

先用android studioMake project成功后,Clean Project项目,清除不用的内容

然后把项目整个复制到\vendor\..\package\下

进入项目根目录,新建一个android.mk文件

android.mk语法请自行百度

以下是本项目,需要引用v7支持,第三方jar包,aar文件和so库文件

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

# ------- alex  --------------1-------------

# support包的根目录,因为编译时我们只能引用来自于framework的support包
support_library_root_dir := frameworks/support


# 是否开启混淆
LOCAL_PROGUARD_ENABLED := disabled

# 设置src
LOCAL_SRC_FILES := $(call all-java-files-under,app/src)
# 指定 res 目录
LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, app/src/main/res) \
$(support_library_root_dir)/v7/appcompat/res


# 指定Manifest文件   不能写成$(LOCAL_PATH)/app/src/main/AndroidManifest.xml
LOCAL_MANIFEST_FILE := app/src/main/AndroidManifest.xml

# 重复资源自动覆盖 不然会报 Resource at AppTheme appears in overlay but not in the base package; use <add-resource> to add
LOCAL_AAPT_FLAGS := --auto-add-overlay \
    --extra-packages android.support.v7.appcompat


#LOCAL_STATIC_ANDROID_LIBRARIES := \
#        android-support-compat \
#        android-support-v4 \
 #       android-support-v7-appcompat

# 依赖包
LOCAL_STATIC_JAVA_LIBRARIES := \
android-common \
android-support-v4 \
android-support-v7-appcompat \
gson-2.7 \
reactive-streams \
rxandroid \
rxjava-2.2.1

# 依赖库,aar
LOCAL_STATIC_JAVA_AAR_LIBRARIES := qcar_encoder


# 依赖so库文件 
LOCAL_PREBUILT_JNI_LIBS := \
    app/libs/arm64-v8a/libmmqcar_ais_client.so \
    app/libs/arm64-v8a/libmmqcar_qcar_jni.so \
    app/libs/arm64-v8a/libqcaraudiorecorder.so \
    app/libs/arm64-v8a/libqcarimageprocess.so \
    app/libs/arm64-v8a/libqcarlibyuv.so \
    app/libs/arm64-v8a/libqcarmdvxread.so \
    app/libs/arm64-v8a/libqcarmdvxwrite.so \
    app/libs/arm64-v8a/libqcarosd.so \
    app/libs/arm64-v8a/libqcarprotobbtrp.so


LOCAL_MODULE_TAGS := optional
#放开这个,打包不报错,但闪退 
LOCAL_USE_AAPT2 := true
# -------------------- end1 -----------------------------

LOCAL_PACKAGE_NAME := DVR
LOCAL_PRIVATE_PLATFORM_APIS := true  
LOCAL_CERTIFICATE := platform


LOCAL_DEX_PREOPT := false
include $(BUILD_PACKAGE)

# ------- alex  --------------2-------------
include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=  gson-2.7:app/libs/gson-2.7.jar \
reactive-streams:app/libs/jar/reactive-streams-1.0.2.jar \
rxandroid:app/libs/jar/rxandroid.jar \
rxjava-2.2.1:app/libs/jar/rxjava-2.2.1.jar



# 构建依赖的aar
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES  +=  qcar_encoder:app/libs/qcar_encoder.aar

include $(BUILD_MULTI_PREBUILT)

# -------------------- end2 -----------------------------
# Use the following include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

?

?

其间遇到的问题

https://blog.csdn.net/m0_37622302/article/details/115519255
https://blog.csdn.net/m0_37622302/article/details/115519731
https://blog.csdn.net/m0_37622302/article/details/115519877
https://blog.csdn.net/m0_37622302/article/details/115520128
https://blog.csdn.net/m0_37622302/article/details/115520330

全部解决完后,激动的我想喝一杯,终于搞定android.mk,千言万语一句话感恩前辈在网络中的分享,

参考:

https://www.jianshu.com/p/511a8247c859
https://www.jianshu.com/p/63715928063b

?

感觉对您有用或有启发的麻烦点个赞,感谢!

?

;原文链接:https://blog.csdn.net/m0_37622302/article/details/115520628
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐