我正在尝试使用Linux中的android构建系统构建一个应用程序和一个接口jar 我的应用程序与我的界面有依赖关系,因此我必须在应用程序生成之前使接口jar准备就绪。
但是我们在使用新构建的接口jar时遇到了构建/运行时问题。 我们试图以两种不同的顺序制作应用程序。
案例1.将接口构建为本地模块,并将其与apk链接为LOCAL_JAVA_LIBRARIES。 案例2.将接口构建为本地模块,并将其与apk链接为LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES。
1.Main Andriod.mk档案: 的 /source/Android.mk
=======================================
STACK_PATH:= $(call my-dir)
LOCAL_PATH:= $(STACK_PATH)
包括$(CLEAR_VARS)
包括$(LOCAL_PATH)/interface/Android.mk
包括$(CLEAR_VARS)
LOCAL_PATH:= $(STACK_PATH)
包括$(LOCAL_PATH)/application/Android.mk
=======================================
2.Interface Android.mk: 的 /source/interface/Android.mk
=======================================
LOCAL_PATH:= $(致电my-dir)
包括$(CLEAR_VARS)
LOCAL_SRC_FILES:= $(调用all-subdir-java-files,src)
LOCAL_MODULE:= MyInterface
LOCAL_MODULE_TAGS:=可选
LOCAL_MODULE_CLASS:= JAVA_LIBRARIES
LOCAL_JAVA_RESOURCE_DIRS:= src
包括$(BUILD_JAVA_LIBRARY)
$(调用dist-for-goals,droidcore,$(full_classes_jar):MyInterface.jar)
=======================================
应用Android.mk: 的 /source/application/Android.mk
=======================================
TOP_LOCAL_PATH:= $(call my-dir)
LOCAL_PATH:= $(TOP_LOCAL_PATH)
包括$(CLEAR_VARS)
LOCAL_SRC_FILES:= $(调用all-subdir-java-files)
LOCAL_PACKAGE_NAME:= MyApplication
LOCAL_JAVA_LIBRARIES:= MyInterface
包括$(BUILD_PACKAGE)
包括$(BUILD_MULTI_PREBUILT)
=======================================
构建成功完成。但在尝试运行此应用程序时,它显示此错误。 I / dalvikvm(XXXX):解析Lcom / test / example / application失败;接口XXX'Lcom / test / example / interface;' W / dalvikvm(XXXX):类'Lcom / test / example / application;'的链接失败
应用Android.mk 的 /source/application/Android.mk
=======================================
TOP_LOCAL_PATH:= $(call my-dir)
LOCAL_PATH:= $(TOP_LOCAL_PATH)
包括$(CLEAR_VARS)
$(shell(cp $(LOCAL_PATH)/../ out / target / common / obj / JAVA_LIBRARIES / Interface_intermediates / classes-jarjar.jar $(LOCAL_PATH)/applications/libs/MyInterface.jar))
LOCAL_STATIC_JAVA_LIBRARIES + = MyInterface
LOCAL_SRC_FILES:= $(调用all-subdir-java-files)
LOCAL_PACKAGE_NAME:= MyApplicationss
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES + = MyInterface:libs / MyInterface.jar
包括$(BUILD_PACKAGE)
包括$(BUILD_MULTI_PREBUILT)
=======================================
这导致了如下构建错误。
build / core / base_rules.mk:166:*源/应用程序:已由源/接口定义的MODULE.TARGET.JAVA_LIBRARIES.MyInterface。停止。
但是当它们在不使用构建系统的情况下单独构建时,就不存在这个问题了。而且应用程序运行时没有错误。
当使用eclipse将接口构建到Myinterface.jar时,使用此构建application-apk 在Linux中,界面jar(通过静态链接),应用程序运行顺利。
我们的Android.mk文件有问题吗?请查看并提出您的建议