Android运行时链接问题

时间:2013-02-27 09:05:39

标签: android makefile embedded-linux android-build android-make

我正在尝试使用Linux中的android构建系统构建一个应用程序和一个接口jar 我的应用程序与我的界面有依赖关系,因此我必须在应用程序生成之前使接口jar准备就绪。

但是我们在使用新构建的接口jar时遇到了构建/运行时问题。 我试图以两种不同的顺序制作应用程序。

案例1.将接口构建为本地模块,并将其与apk链接为LOCAL_JAVA_LIBRARIES。 案例2.将接口构建为本地模块,并将其与apk链接为LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES。

以下是main和interface的Android.mk文件。

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)

=======================================

以下是CASE 1中应用程序的Android.mk文件。

应用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;'的链接失败

以下是CASE 2中应用程序的Android.mk文件。

应用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文件有问题吗?请帮忙

2 个答案:

答案 0 :(得分:0)

我认为您应该在 <svg width="100%" height="100%" viewBox="30 -50 600 500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> <path id="path1"> <animate attributeName="d" from="m100,50 h0" to="m100,50 h1100" dur="5s" begin="0s" repeatCount="indefinite" /> </path> // this text "types" <text font-size="90" font-family="Montserrat" fill='black'> <textPath xlink:href="#path1">Google is</textPath> </text> // I want this text to animate the "font-style" <text font-size="90" font-family="Montserrat" fill='black' x="100" y="200"> <tspan>G<animate attributeType="CSS" attributeName="font-weight" from="700" to="100" dur="1s" begin="0s" repeatCount="indefinite"/></tspan>oogle is gold </text>LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES

之间include $(BUILD_PACKAGE)

请参阅another answer

答案 1 :(得分:-1)

点击Android Build System Details的链接 http://www.kandroid.org/online-pdk/guide/build_system.html