Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在AOSP构建期间使用约束布局,而不包括external.aar和.jar_Android_Android Constraintlayout_Android Source_Android.mk - Fatal编程技术网

Android 如何在AOSP构建期间使用约束布局,而不包括external.aar和.jar

Android 如何在AOSP构建期间使用约束布局,而不包括external.aar和.jar,android,android-constraintlayout,android-source,android.mk,Android,Android Constraintlayout,Android Source,Android.mk,我正试图通过在AOSP源代码中构建一个模块来构建基于java的android应用程序。我的应用程序使用android.support.constraint.ConstraintLayout。但是,我没有找到在我的Android.mk中包含约束布局依赖项的直接方法 我已将我的项目置于AOSP_ROOT/packages/apps下,并尝试使用此Android.mk: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_T

我正试图通过在AOSP源代码中构建一个模块来构建基于java的android应用程序。我的应用程序使用android.support.constraint.ConstraintLayout。但是,我没有找到在我的
Android.mk
中包含约束布局依赖项的直接方法

我已将我的项目置于
AOSP_ROOT/packages/apps
下,并尝试使用此
Android.mk

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

LOCAL_MODULE_TAGS := optional
LOCAL_PRIVILEGED_MODULE := true                 
LOCAL_PACKAGE_NAME := MyApp
LOCAL_PRIVATE_PLATFORM_APIS := true

LOCAL_SRC_FILES := $(call all-java-files-under, java) 
LOCAL_MANIFEST_FILE := AndroidManifest.xml

LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages android.support.constraint

LOCAL_STATIC_JAVA_LIBRARIES := \
    android-common \
    android-support-v4 \
    android-support-constraint-layout-solver

LOCAL_STATIC_JAVA_AAR_LIBRARIES := \
    android-support-constraint-layout

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

LOCAL_MODULE_TAGS := optional
LOCAL_PRIVILEGED_MODULE := true                 
LOCAL_PACKAGE_NAME := MyApp
LOCAL_PRIVATE_PLATFORM_APIS := true

LOCAL_USE_AAPT2 := true

LOCAL_SRC_FILES := $(call all-java-files-under, java) 
LOCAL_MANIFEST_FILE := AndroidManifest.xml

LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages android.support.constraint

LOCAL_STATIC_ANDROID_LIBRARIES:= \
    android-support-constraint-layout

LOCAL_STATIC_JAVA_LIBRARIES := \
    android-common \
    android-support-v4 \
    android-support-constraint-layout-solver

include $(BUILD_PACKAGE)
但是,这会产生生成错误:

ninja:error:'out/target/common/obj/JAVA_LIBRARIES/android-support-constraint-layou_intermediates/aar/classes.jar'所需的'out/target/common/obj/APPS/MyApp_intermediates/AndroidManifest.xml'缺少并且没有已知的规则 20:57:54忍者失败:退出状态1

据我所知,它正在搜索可以从
.aar
文件构建的
classes.jar
,但它丢失了。然而,这里的答案解决了这个问题:

但是,问题是,这个答案建议在我的项目
libs
目录中添加外部
constraint layout.aar
constraint layout solver.jar


我的问题是,是否可以使用AOSP内的内置库在我的项目中添加
约束布局
支持,而不向我的项目中添加外部
.aar
.jar

,总之,我找到了解决方案。无需在项目
libs
中包含
约束布局
,作为额外库

为了解决这个问题,我们需要在Android.mk中增加一行:

LOCAL\u USE\u AAPT2:=true

也可以使用
LOCAL\u STATIC\u ANDROID\u库
,而不是
LOCAL\u STATIC\u JAVA\u AAR\u库

这是正在工作的Android.mk

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

LOCAL_MODULE_TAGS := optional
LOCAL_PRIVILEGED_MODULE := true                 
LOCAL_PACKAGE_NAME := MyApp
LOCAL_PRIVATE_PLATFORM_APIS := true

LOCAL_SRC_FILES := $(call all-java-files-under, java) 
LOCAL_MANIFEST_FILE := AndroidManifest.xml

LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages android.support.constraint

LOCAL_STATIC_JAVA_LIBRARIES := \
    android-common \
    android-support-v4 \
    android-support-constraint-layout-solver

LOCAL_STATIC_JAVA_AAR_LIBRARIES := \
    android-support-constraint-layout

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

LOCAL_MODULE_TAGS := optional
LOCAL_PRIVILEGED_MODULE := true                 
LOCAL_PACKAGE_NAME := MyApp
LOCAL_PRIVATE_PLATFORM_APIS := true

LOCAL_USE_AAPT2 := true

LOCAL_SRC_FILES := $(call all-java-files-under, java) 
LOCAL_MANIFEST_FILE := AndroidManifest.xml

LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages android.support.constraint

LOCAL_STATIC_ANDROID_LIBRARIES:= \
    android-support-constraint-layout

LOCAL_STATIC_JAVA_LIBRARIES := \
    android-common \
    android-support-v4 \
    android-support-constraint-layout-solver

include $(BUILD_PACKAGE)

不管怎样,我已经找到了解决办法。无需在项目
libs
中包含
约束布局
,作为额外库

为了解决这个问题,我们需要在Android.mk中增加一行:

LOCAL\u USE\u AAPT2:=true

也可以使用
LOCAL\u STATIC\u ANDROID\u库
,而不是
LOCAL\u STATIC\u JAVA\u AAR\u库

这是正在工作的Android.mk

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

LOCAL_MODULE_TAGS := optional
LOCAL_PRIVILEGED_MODULE := true                 
LOCAL_PACKAGE_NAME := MyApp
LOCAL_PRIVATE_PLATFORM_APIS := true

LOCAL_SRC_FILES := $(call all-java-files-under, java) 
LOCAL_MANIFEST_FILE := AndroidManifest.xml

LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages android.support.constraint

LOCAL_STATIC_JAVA_LIBRARIES := \
    android-common \
    android-support-v4 \
    android-support-constraint-layout-solver

LOCAL_STATIC_JAVA_AAR_LIBRARIES := \
    android-support-constraint-layout

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

LOCAL_MODULE_TAGS := optional
LOCAL_PRIVILEGED_MODULE := true                 
LOCAL_PACKAGE_NAME := MyApp
LOCAL_PRIVATE_PLATFORM_APIS := true

LOCAL_USE_AAPT2 := true

LOCAL_SRC_FILES := $(call all-java-files-under, java) 
LOCAL_MANIFEST_FILE := AndroidManifest.xml

LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages android.support.constraint

LOCAL_STATIC_ANDROID_LIBRARIES:= \
    android-support-constraint-layout

LOCAL_STATIC_JAVA_LIBRARIES := \
    android-common \
    android-support-v4 \
    android-support-constraint-layout-solver

include $(BUILD_PACKAGE)