在AOSP源码中添加系统应用(Through App source code/working AS project)
Add System application(Through App source code/working AS project) in AOSP source code
我正在尝试通过应用源代码而不是 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 文件中看到的,您可能需要 link androidx.appcompat:appcompat
、androidx.constraintlayout:constraintlayout
、androidx.navigation:navigation-ui
和 androidx.navigation:navigation-fragment
你的 Android.mk
示例
LOCAL_STATIC_ANDROID_LIBRARIES := \
androidx.appcompat_appcompat \
androidx-constraintlayout_constraintlayout \
androidx-navigation_navigation-ui \
androidx-navigation_navigation-fragment \
...
但是 androidx-navigation_navigation-ui
和 androidx-navigation_navigation-fragment
可能可用或不可用取决于您的 AOSP 构建系统。您应该自己检查以确保这些库可用(通常位于 prebuilts
目录中)。如果这些库不可用,您需要手动下载它们,然后手动将它们添加到 AOSP 构建系统。
我正在尝试通过应用源代码而不是 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 文件中看到的,您可能需要 link androidx.appcompat:appcompat
、androidx.constraintlayout:constraintlayout
、androidx.navigation:navigation-ui
和 androidx.navigation:navigation-fragment
你的 Android.mk
示例
LOCAL_STATIC_ANDROID_LIBRARIES := \
androidx.appcompat_appcompat \
androidx-constraintlayout_constraintlayout \
androidx-navigation_navigation-ui \
androidx-navigation_navigation-fragment \
...
但是 androidx-navigation_navigation-ui
和 androidx-navigation_navigation-fragment
可能可用或不可用取决于您的 AOSP 构建系统。您应该自己检查以确保这些库可用(通常位于 prebuilts
目录中)。如果这些库不可用,您需要手动下载它们,然后手动将它们添加到 AOSP 构建系统。