我有两个库想要添加到 AOSP: Azure Storage & Jackson Core
当 Azure 存储依赖 Jackson 时。
已关注 this instructions ,我已将它们添加到 [MAIN_FOLDER]/external
下,并添加以下 Android.mk
文件:
献给 jackson -
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := jackson
LOCAL_MODULE_TAGS := eng debug optional
LOCAL_SDK_VERSION := current
LOCAL_SRC_FILES := $(call all-java-files-under, src/main)
include $(BUILD_JAVA_LIBRARY)
以及 Azure 存储 -
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := azure-storage
LOCAL_JAVA_LIBRARIES := jackson
LOCAL_MODULE_TAGS := eng debug optional
LOCAL_SDK_VERSION := current
LOCAL_SRC_FILES := $(call all-java-files-under, src/main)
include $(BUILD_JAVA_LIBRARY)
当我还添加时:
PRODUCT_BOOT_JARS := \
jackson \
azure-storage
到我的core_minimal.mk
。
以及以下内容到[MAIN_FOLDER]/frameworks/base/services/core/Android.mk
:
LOCAL_JAVA_LIBRARIES += jackson azure-storage
唉,当我尝试make update-api && make
时,
我收到以下错误:
Error: out/target/common/obj/JAVA_LIBRARIES/jackson_intermediates/classes.jar: unknown package name of class file com/fasterxml/jackson/core/JsonLocation.class
Error: out/target/common/obj/JAVA_LIBRARIES/azure-storage_intermediates/classes.jar: unknown package name of class file com/microsoft/azure/storage/CorsRule.class
make: *** [out/target/common/obj/PACKAGING/boot-jars-package-check_intermediates/stamp] Error 1
make: *** Waiting for unfinished jobs....
谢谢!
最佳答案
首先,我们最好找到这个错误来自哪里,通过“grep”我们发现它来自Python:build/core/tasks/check_boot_jars/check_boot_jars.py:
def CheckJar(jar):
package_name = os.path.dirname(f)
package_name = package_name.replace('/', '.')
# Skip class without a package name
if package_name and not whitelist_re.match(package_name):
print >> sys.stderr, ('Error: %s: unknown package name of class file %s' % (jar, f))
return False
显然,如果您的包名称不存在于“whitelist_re”中,则会出现错误!
“whitelist_re”的值来自名为“build/core/tasks/check_boot_jars/package_whitelist.txt”的 txt 文件,因此解决方案是将您的包添加到此白名单文件中。
package_whitelist.txt 中列出了示例。
关于java - 类文件的未知包名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40114369/