android - 在AOSP源代码中添加系统应用程序(通过App源代码/工作AS项目)

标签 android operating-system embedded android-source

我正在尝试通过应用程序源代码而不是通过 apk 在 AOSP 源中添加应用程序。我的应用程序是我在 Android Studio 中开发的简单的 hello world 应用程序。我已经编写了它的Android.mk,并将其放置在packages/app/myapplication/Android.mk中。 aosp_source_code/build/target/product/handheld_system.mk 中注册的应用程序包名称 我在 Android.mk 文件中犯了任何错误吗?或者我错过了任何步骤。

这是我的Android.mk的代码

include $(CLEAR_VARS)

LOCAL_PACKAGE_NAME := Myapplication
LOCAL_MODULE_TAGS := optional
LOCAL_PRIVILEGED_MODULE := true
LOCAL_CERTIFICATE := platform

LOCAL_PRIVATE_PLATFORM_APIS := true

LOCAL_SRC_FILES := $(call all-java-files-under, src/main/java)
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/src/main/res
LOCAL_MANIFEST_FILE := src/main/AndroidManifest.xml

LOCAL_DEX_PREOPT := false
LOCAL_PROGUARD_ENABLED := disabled

LOCAL_USE_AAPT2 := true

LOCAL_STATIC_ANDROID_LIBRARIES := \
    android-arch-lifecycle-extensions \
    android-support-v7-recyclerview \
    android-support-v7-appcompat \
    android-support-constraint-layout
include $(BUILD_PACKAGE) 

错误

packages/apps/Myapplication/src/main/res/layout/content_main.xml:8: error: attribute defaultNavHost (aka com.myapplication:defaultNavHost) not found.
packages/apps/Myapplication/src/main/res/layout/content_main.xml:8: error: attribute navGraph (aka com.myapplication:navGraph) not found.
packages/apps/Myapplication/src/main/res/navigation/nav_graph.xml:2: error: attribute startDestination (aka com.myapplication:startDestination) not found.
packages/apps/Myapplication/src/main/res/navigation/nav_graph.xml:14: error: attribute destination (aka com.myapplication:destination) not found.
packages/apps/Myapplication/src/main/res/navigation/nav_graph.xml:24: error: attribute destination (aka com.myapplication:destination) not found.
error: failed linking file resources.
11:57:34 ninja failed with: exit status 1

#### failed to build some targets (4 seconds)

最佳答案

正如我在您的 build.gradle 文件中看到的那样,您可能需要链接 androidx.appcompat:appcompat, androidx.constraintlayout:constraintlayout, androidx.navigation Android.mk 中的 :navigation-uiandroidx.navigation:navigation-fragment

示例

LOCAL_STATIC_ANDROID_LIBRARIES := \
    androidx.appcompat_appcompat \
    androidx-constraintlayout_constraintlayout \
    androidx-navigation_navigation-ui \
    androidx-navigation_navigation-fragment \
    ...

但是 androidx-navigation_navigation-uiandroidx-navigation_navigation-fragment 可能可用或不可用,具体取决于您的 AOSP 构建系统。您应该自行检查以确保这些库可用(通常位于 prebuilts 目录中)。如果这些库不可用,您需要手动下载它们,然后手动将它们添加到 AOSP 构建系统中。

关于android - 在AOSP源代码中添加系统应用程序(通过App源代码/工作AS项目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64241510/

相关文章:

c - 嵌入式系统 : static or dynamic linking

c - 编写固件:组装还是高级?

android - Adobe Air 应用程序 - 从背景黑屏返回

android - Settings.ACTION_MANAGE_OVERLAY_PERMISSION 权限不适用于 API 级别 23 以上的所有设备

android - 以编程方式获取连接到 adb 的 android 设备列表

android - Eclipse 中 Android 项目的 Javadoc 给出 NullPointerException

python - 权限被拒绝 (Errno 13) - wandb init - 在 docker 容器中

c - 输出仍然保留在缓冲区中并在每个子进程之后打印出来

android - 如何减少在冷启动时启动应用程序所需的时间

c++ - 如何利用双缓冲来读取数字输入状态?