Android P出现的编译问题

首先解决这个问题的思路是,将android.mk 转换成对应的android.bp文件 。
android.mk大家都很熟悉了,就是android下编译模块的配置文件,可以理解为android makefile。从android N之后,我们发现好多模块下面没有了android.mk文件,多了一个android.bp文件。这个是google在android N之后新的编译配置文件。

在实际项目中,我们需要把android.mk转换为android.bp,还好sdk中给我提供了androidmk工具,可以直接把android.mk转换为android.bp.

源码在:build/soong/androidmk
我们在out下面找下androidmk工具,如果没有可以执行命令:m -j blueprint_tools
然后在在out/soong/host/linux-x86/bin/androidmk生成工具

androidmk android.mk > android.bp
这样即可把android.mk转换为android.bp文件了

执行方式:
alps$ androidmk Android2.mk > Android2.bp

查看前后差异:Android2.mk如下
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-java-files-under,src)

LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_PACKAGE_NAME := OdmFileManager
LOCAL_PROPRIETARY_MODULE := false
LOCAL_MODULE_OWNER := mtk
LOCAL_CERTIFICATE := platform
LOCAL_OVERRIDES_PACKAGES := FileManager

LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4
LOCAL_JAVA_LIBRARIES += mediatek-framework
LOCAL_JAVA_LIBRARIES += mediatek-common
LOCAL_STATIC_JAVA_LIBRARIES += com.mediatek.omadrm.common
include $(BUILD_PACKAGE)
include ( c a l l a l l − m a k e f i l e s − u n d e r , (call all-makefiles-under, (callallmakefilesunder,(LOCAL_PATH))

对应的Android2.bp如下:
android_app {

srcs: ["src/**/*.java"],

// ANDROIDMK TRANSLATION ERROR: unsupported assignment to LOCAL_PRIVATE_PLATFORM_APIS
// LOCAL_PRIVATE_PLATFORM_APIS := true

name: "OdmFileManager",
proprietary: false,
   owner: "mtk",
certificate: "platform",
// ANDROIDMK TRANSLATION ERROR: unsupported assignment to LOCAL_OVERRIDES_PACKAGES
// LOCAL_OVERRIDES_PACKAGES := FileManager

static_libs: ["android-support-v4"] + ["com.mediatek.omadrm.common"],
libs: ["mediatek-framework"] + ["mediatek-common"],

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值