背景
今天 浏览 LineageOS相关 发现一个系统测试应用MotoActions。 准备移植到现有系统中
issue
由于Android OS 不同 移植中遇到问题,本文基于android 9 验证
记录一下fix过程
0 原文件
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := MotoActions
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true
LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-v14-preference \
android-support-v7-appcompat \
android-support-v7-preference \
android-support-v7-recyclerview
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
LOCAL_RESOURCE_DIR := \
$(LOCAL_PATH)/res \
frameworks/support/v14/preference/res \
frameworks/support/v7/appcompat/res \
frameworks/support/v7/preference/res \
frameworks/support/v7/recyclerview/res
LOCAL_AAPT_FLAGS := --auto-add-overlay \
--extra-packages android.support.v14.preference:android.support.v7.appcompat:android.support.v7.preference:android.support.v7.recyclerview
LOCAL_PROGUARD_ENABLED := disabled
LOCAL_DEX_PREOPT := false
include frameworks/base/packages/SettingsLib/common.mk
include $(BUILD_PACKAGE)
include $(call all-makefiles-under,$(LOCAL_PATH))
问题1 :error: MotoActions: Must specify LOCAL_SDK_VERSION or LOCAL_PRIVATE_PLATFORM_APIS,
方案:按照提示添加
LOCAL_SDK_VERSION := current
问题2 : error: MotoActions (java:sdk) should not link to SettingsLib (java:platform)
方案: 根据已有模块 修改如下:
LOCAL_SDK_VERSION := current
LOCAL_PRIVATE_PLATFORM_APIS := true
问题3 : error: MotoActions (java:platform) should not link to SettingsLib (aapt2_only)
方案: 参考已有模块 添加如下修改:
LOCAL_USE_AAPT2 := true
至此,编译问题已经解决
TODO
此应用的功能涉及到具体定制。想要build成功 需要做修改