今天遇到一个问题:在Launcher3,中添加SystemProperties功能,始终编译不过,报错如下:
ERROR: /home/zhiwu/sungq/M970/packages/apps/Launcher3/src/com/android/launcher3/Launcher.java:80: The import android.os.SystemProperties cannot be resolved
ERROR: /home/zhiwu/sungq/M970/packages/apps/Launcher3/src/com/android/launcher3/Launcher.java:2780: SystemProperties cannot be resolved
ERROR: /home/zhiwu/sungq/M970/packages/apps/Launcher3/src/com/android/launcher3/Launcher.java:2781: SystemProperties cannot be resolved
到framework下面查找位置:
framework/base/core/java/android/os/SystemProperties.java
为什么这个位置下其他的文件都可以找到,唯独SystemProperties找不到,
最后对比其他可以使用SystemProperties的应用,发现LOCAL_JAVA_LIBRARIES := framework这个属性
在Launcher3的android.mk里面没有
最后在android.mk里加上LOCAL_JAVA_LIBRARIES := framework这个,就可以编译通过了。
下面附上Android.mk的源码,供查询
LOCAL_PATH := $(call my-dir)
#
# Build app code.
#
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_JAVA_LIBRARIES := framework
LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-v4 \
android-support-v7-recyclerview
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
$(call all-java-files-under, WallpaperPicker/src) \
$(call all-proto-files-under, protos)
LOCAL_SRC_FILES += src/com/qti/launcherunreadservice/IGetUnreadNumber.aidl
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/WallpaperPicker/res \
$(LOCAL_PATH)/res \
frameworks/support/v7/recyclerview/res
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
LOCAL_PROTOC_OPTIMIZE_TYPE := nano
LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/protos/
LOCAL_AAPT_FLAGS := \
--auto-add-overlay \
--extra-packages android.support.v7.recyclerview
LOCAL_SDK_VERSION := current
LOCAL_PACKAGE_NAME := Launcher3
LOCAL_PRIVILEGED_MODULE := true
#LOCAL_CERTIFICATE := shared
LOCAL_OVERRIDES_PACKAGES := Home Launcher2
include $(BUILD_PACKAGE)
#
# Launcher proto buffer jar used for development
#
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-proto-files-under, protos)
LOCAL_PROTOC_OPTIMIZE_TYPE := nano
LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/protos/
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := launcher_proto_lib
LOCAL_IS_HOST_MODULE := true
LOCAL_STATIC_JAVA_LIBRARIES := host-libprotobuf-java-nano
include $(BUILD_HOST_JAVA_LIBRARY)
include $(call all-makefiles-under,$(LOCAL_PATH))
在尝试在Android 7.0的Launcher3中添加SystemProperties功能时,遇到编译错误,提示无法解析SystemProperties。问题出在缺少对framework的引用。在分析和对比其他应用后,发现在Launcher3的android.mk文件中添加LOCAL_JAVA_LIBRARIES := framework后,编译得以通过。更新后的Android.mk文件包括了对framework的依赖,从而解决了问题。
1569

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



