当前位置: 首页 > 知识库问答 >
问题:

如何在 AOSP 构建期间使用约束布局,而不包含外部 .aar 和.jar

柴琦
2023-03-14

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

我已经把我的项目放在AOSP_ROOT/包/应用程序下,并尝试了这个 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)

但是,这会带来构建错误:

忍者:错误:“out/target/common/obj/JAVA_LIBRARIES/android-support-constraint-layout_intermediates/aar/classes。“out/target/common/obj/APPS/MyApp_intermediates/AndroidManifest”所需的jar。xml',丢失,并且没有已知规则使其20:57:54 ninja失败,退出状态1

我的理解 - 它正在搜索类.jar这些类可以从.aar文件构建,但它丢失了。但是,此处的答案解决了该问题:如何在 AOSP 项目中包含约束布局库

但是,问题是,该答案建议在我的项目库目录中添加外部约束布局.aar约束布局求解器.jar

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

共有1个答案

狄赞
2023-03-14

无论如何,我已经找到了解决方案。没有必要在项目libs中包含约束布局作为额外的库。

为了解决这个问题,Android.mk 我们需要添加一行额外的行:

< code > LOCAL _ USE _ AAP T2:= true

并且也使用< code > LOCAL _ STATIC _ ANDROID _ LIBRARIES 而不是< code > LOCAL _ STATIC _ JAVA _ AAR _ LIBRARIES 。

这是工作 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_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)
 类似资料:
  • 我有两个组件和。每个组件都是由<code>ConstraintLayout</code>创建的。现在,我从上面的组件创建<code>WelcomeScreen</code>。 用例1:使用静态< code>ConstraintLayout(在< code>ConstraintLayout内的< code>ConstraintLayout) 结果:布局预览不显示任何内容 用例2:<代码>Welcom

  • 我一直在尝试新的android构建系统,但遇到了一个小问题。我已经编译了自己的aar ActionBarSherlock包,我称之为“ActionBarSherlock”。啊。我想做的是用这个aar来构建我的最终APK。如果我使用compile project(“:ActionBarSherlock”)将整个ActionBarSherlock库作为一个android库模块包含到我的主项目中,我就能

  • 我目前正在尝试将APK纳入我的AOSP 10版本。为此,我在< code>packages/apps下创建了一个新的模块文件夹,并将我的APK和一个Android.mk文件放入其中。然后,我将模块添加到PRODUCT_PACKAGES变量中。当< code>packages/apps下的模块是一个真正的文件夹时,这非常有用。然而,当我通过符号链接替换is时,该应用程序不会出现在新版本中。我的And

  • 问题内容: 我有以下内容: 这是我的目录结构: / build / lib / MagicFolder / Src /build.xml 文件夹包含文件。 路径应为输入参数。 有外部.jar库,应该将其包含在我的版本中。 将编译.class`文件的文件夹 问题:我应该如何改变我的?我应该: 添加外部库 当我运行我的应用程序时,为我的应用程序输入2个输入参数 问题答案: 如果您需要在类路径中添加一个

  • 我花了两天时间尝试了混合和纯自动布局方法的各种解决方案,以实现在自动布局之前简单的滚动视图设置,现在它是正式的了——我一定太傻了。我主要是在故事板中设置这个(嗯,就是这样)。 所以我请求帮助。 视图树: 按钮应该水平滚动(从左到右,反之亦然)。有人能告诉我如何设置约束来使用纯自动布局实现这一点吗??? -- 我尝试了混合方法,如下所示: ...以及根据Apple的TechNote为< code>c

  • 问题内容: 目前,我正在使用Android,试图避免使用Eclipse(对此我有非理性的仇恨)。 我需要包含一个外部文件(用于我的),并且不知道如何链接它以… 我已经阅读了文件,但是向XML 添加或节点并不能解决问题。 希望有人能帮助我! 问题答案: 只需将其放在目录中即可。从那里开始,其他所有工作都得到了照顾- 无需修改Ant脚本。例如,这是一个示例项目,显示了以这种方式集成BeanShell解