2014-09-23 53 views
2

我想让我的应用程序使用Android源代码构建。如何在Android.mk文件中包含appcompat_v7以及在源代码中放置appcompat_v7文件夹的位置。我使用下面的代码,如何在Android.mk文件中包含appcompat_v7

LOCAL_PATH:= $(call my-dir) 
include $(CLEAR_VARS) 
LOCAL_STATIC_JAVA_LIBRARIES := \appcompat_v7 
# Include all java files. 
LOCAL_SRC_FILES := $(call all-java-files-under, src) 
LOCAL_PACKAGE_NAME := MyPackage 
include $(BUILD_PACKAGE) 

我收到错误

化妆:没有规则,使目标的出/目标/普通/ OBJ/JAVA_LIBRARIES/\ appcompat_v7_intermediates/javalib.jar', 'out/target/common/obj/APPS/MyPackage_intermediates/classes-full-debug.jar'需要。停止。

任何人请帮忙。提前致谢。

回答

3

我是能够建立一个包括程序兼容性使用下面的Android.mk

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_PACKAGE_NAME := MySuperAwesomeApp 

LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-appcompat 
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-gridlayout 
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v13 

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

LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res 
LOCAL_RESOURCE_DIR += prebuilts/sdk/current/support/v7/appcompat/res 
LOCAL_RESOURCE_DIR += prebuilts/sdk/current/support/v7/gridlayout/res 

LOCAL_CERTIFICATE := platform 
LOCAL_PRIVILEGED_MODULE := true 
LOCAL_AAPT_FLAGS := --auto-add-overlay 
LOCAL_AAPT_FLAGS += --extra-packages android.support.v7.appcompat:android.support.v7.gridlayout 

include $(BUILD_PACKAGE) 

来源:https://android.googlesource.com/platform/packages/apps/UnifiedEmail/+/android-5.0.1_r1/Android.mk

0

此代码对我的作品,我希望它可以帮助!将appcompat_v7项目的库中的jar文件复制到项目的libs目录中。

LOCAL_PATH:= $(call my-dir) 
include $(CLEAR_VARS) 

LOCAL_STATIC_JAVA_LIBRARIES := \ 
     android-support-v4 \ 
     android-support-v7-appcompat 
     <more jar could be added here> 

LOCAL_SRC_FILES := $(call all-subdir-java-files) 

LOCAL_PACKAGE_NAME := <The name of your App project> 

LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res 
LOCAL_RESOURCE_DIR += <The absolute path to your appcompat_v7 project>/res 

LOCAL_CERTIFICATE := platform 
LOCAL_PRIVILEGED_MODULE := true 
LOCAL_AAPT_FLAGS := --auto-add-overlay 
LOCAL_AAPT_FLAGS += --extra-packages android.support.v4:android.support.v7.appcompat <replace the _ with . for your all jar files> 

include $(BUILD_PACKAGE) 
+0

实际上,appcompat_v7项目是为了使项目与旧版本的SDK兼容而创建的。因此,为了避免自动生成此项目,您可以在创建自己的Android项目时将SDK版本的最低要求设置为高于4.0。 – gxlzlihao 2015-06-18 02:44:51

0

我在命令行中构建了我的包以及Android源代码,并且很难包含v7 appcompat。对我来说,将android-support-v7-appcompat.jar复制到libs并更改上面公布的其他Android.mk并不能解决我的问题。我终于明白,我需要先构建v7 appcompat。

  1. 转到PATH/TO/frameworks/support/v7/appcompat并首先构建它。
  2. 不需要将appcompat.jar复制到库。让你的Android.mk像上面的两个帖子,它应该工作。