我是一名安卓固件开发者。我使用 android 9 的源代码。我为 AOSP 固件编写了一个自定义网络位置提供程序,名为离线位置服务。我已将此应用程序添加到packages/apps/offlinelocatonserviceAOSP 构建树中的路径。
我Android.mk为它创建了一个文件,将它包含在 android 操作系统的默认包中。
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PACKAGE_NAME := OfflineLocationService
LOCAL_SDK_VERSION := current
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_CERTIFICATE := platform
LOCAL_USE_AAPT2 := true
# Include libraries
LOCAL_JAVA_LIBRARIES := framework com.android.location.provider
LOCAL_STATIC_JAVA_LIBRARIES := android-common
LOCAL_STATIC_ANDROID_LIBRARIES := \
android-support-v4 \
android-support-v7-appcompat \
android-support-design \
android-support-v7-preference \
android-support-v7-recyclerview \
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_AAPT_FLAGS := --auto-add-overlay
LOCAL_AAPT_FLAGS += --extra-packages android.support.v7.appcompat
LOCAL_AAPT_FLAGS += --extra-packages android.support.design
include $(BUILD_PACKAGE)
Run Code Online (Sandbox Code Playgroud)
但是当我构建 AOSP 时,我遇到了这个错误:
packages/apps/OfflineLocationService/Android.mk: error: OfflineLocationService (java:sdk) should not link to com.android.location.provider (java:platform)
packages/apps/OfflineLocationService/Android.mk: error: OfflineLocationService (java:sdk) should not link to framework (java:platform)
Run Code Online (Sandbox Code Playgroud)
为什么我不应该链接到com.android.location.provider和framework?在以前的 android 系统(例如 android 8 及更早版本)中,不会发生此错误。
我该如何解决这个错误?
小智 8
我在 Android 9.0 Temporary 中遇到了同样的问题,我通过更改OfflineLocationService/Android.mk替换解决了:
LOCAL_SDK_VERSION := current
Run Code Online (Sandbox Code Playgroud)
和:
LOCAL_PRIVATE_PLATFORM_APIS := true
Run Code Online (Sandbox Code Playgroud)
但如果有人能找到更好的解决方案,那就太好了。
| 归档时间: |
|
| 查看次数: |
3910 次 |
| 最近记录: |