ICS로 넘어오면서 vcard의 위치가 framework\opt\vcard로 바뀌었습니다.

app이나 provider에서는 사용이 가능한데, framework단에서 import하면 찾을 수 없는 심볼이라고 나옵니다.

진저에서 framework\base쪽에 소스가 있을때는 import가 되었었는데요, 


mk파일을 보면,


framework\base에는


include $(CLEAR_VARS)

LOCAL_SRC_FILES := $(ext_src_files)

LOCAL_NO_STANDARD_LIBRARIES := true

LOCAL_JAVA_LIBRARIES := core

LOCAL_JAVA_RESOURCE_DIRS := $(ext_res_dirs)

LOCAL_MODULE_TAGS := optional

LOCAL_MODULE := ext

LOCAL_NO_EMMA_INSTRUMENT := true

LOCAL_NO_EMMA_COMPILE := true

LOCAL_DX_FLAGS := --core-library

include $(BUILD_JAVA_LIBRARY)

# Include subdirectory makefiles



vcard가 base로부터 분리되어  framework\opt\vcard로 가고 있는 mk파일에는


LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# 2.3

LOCAL_SDK_VERSION := 9

LOCAL_MODULE := com.android.vcard

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

include $(BUILD_STATIC_JAVA_LIBRARY)

# Build the test package.

include $(call all-makefiles-under, $(LOCAL_PATH)) 


이렇게 되어있네요.


분리된 vcard소스는 provider나 app단에서는 import가 가능한데 framework단에서는 import가 안되어 사용할 수 없습니다.

make를 수정하면 될것같기도 한데... 어떻게 해야할지 아시는 분 알려주세요.


참고로 android framework소스를 카피하면 method 개수가 오버되어 dex 에러가 납니다.

import를 되게 해야할 것 같습니다.