2

我想融入car-ui-lib我的项目。我从这个google git在文件中手动创建Android.mk在 我构建我的项目之后,android studio 创建 cpp 文件夹并使用模块中的这段代码添加我的Android.mk文件。(src/main/jni)build.gradle

   sourceSets { main {
        res.srcDirs = ['src/main/res']
    } }

    externalNativeBuild {
        ndkBuild {
            path "src/main/jni/Android.mk"
        }
    }

    useLibrary 'android.car'

现在的问题是,car-ui组件仍然没有显示,我尝试这些导入:

import com.android.car.ui.toolbar.TabLayout;
import com.android.car.ui.core.CarUi;

但它仍然显示“无法解析符号 ui”

我也在 Android.mk 代码下面尝试,但问题仍然存在。

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
CAR_UI_RRO_SET_NAME := oem
LOCAL_MODULE := car-ui
CAR_UI_RESOURCE_DIR := $(LOCAL_PATH)/res
CAR_UI_RRO_TARGETS := $(CAR_UI_RRO_PACKAGE_NAMES)
CAR_UI_GENERATE_RRO_SET := $(call my-dir)/generate_rros.mk
LOCAL_STATIC_ANDROID_LIBRARIES := car-ui-lib
include $(BUILD_STATIC_LIBRARY)

我也尝试了他们的官方文档,但仍然没有任何效果。任何教程/帮助将不胜感激:)

4

2 回答 2

1

Android.mk/Android.bp 是 AOSP 构建系统的 makefile,它们与 Android Studio(或 Gradle)不兼容。使用前者构建 Android 操作系统和系统应用程序,使用后者构建常规应用程序。

您需要做的是在 AOSP 树中创建一个新文件夹并从这里构建它。您可以从复制该paintbooth 测试应用程序开始(不要忘记更改包名称)。然后您可以通过“make YourPackageName”构建应用程序并使用“adb root && adb remount && adb sync”推送到您的设备。请注意,这需要首先构建和刷新您自己的整个系统映像(执行并刷新完整的 AAOS 构建)。

于 2021-03-12T04:06:20.050 回答
0

虽然useLibrary 'android.car'Gradle 配置中的这一行将允许您使用 car-ui-lib,但仍有许多 API 在公共版本中不可用。我相信 car-ui-lib 仍在努力开发中,因此如果您确实需要使用 Android Studio 项目中的代码,则需要使用构建 AAOS 时可以找到的 car-ui-lib jar。您可以在此路径下找到它:

out/target/common/obj/JAVA_LIBRARIES/android.car_intermediates/classes.jar

如果您将项目从 Android Studio 移动到平台,那么您将能够使用这些 api,前提是您在 makefile 中有正确的配置:LOCAL_STATIC_ANDROID_LIBRARIES := car-ui-lib.

于 2021-03-18T11:23:06.330 回答