0

私はhttps://wladimir-tm4pda.github.io/porting/build_cookbook.htmlに従っており、Building a simple APKを変更しました。

Android.mk ファイルは最上位にあります。

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

LOCAL_STATIC_ANDROID_LIBRARIES += \
    android-arch-lifecycle-extensions \
    android-support-v7-recyclerview \
    android-support-v7-appcompat \
    android-support-constraint-layout \

# Build all java files in the java subdirectory
#LOCAL_SRC_FILES := $(call all-subdir-java-files)
#Commented line just made a ~17kB apk file
LOCAL_SRC_FILES := $(call all-java-files-under, app/src/main/java)
LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/app/src/main/res

# Name of the APK to build
LOCAL_PACKAGE_NAME := LocalPackage

LOCAL_SDK_VERSION := current
#Otherwise build failing

# Tell it to build an APK
include $(BUILD_PACKAGE)

Android 10 AOSP に含めmm、ターミナルでコマンドを使用してビルドしました。

出力 apk のサイズは 1 MB (5 MB である必要があります) であり、実行後 adb install -r -t -f LocalPackage.apk はアプリ リストに表示されません。Android Studio でビルドすると、正常に動作します。

私の目標は、このアプリをシステム アプリにすることですが、最初のステップはmmビルドを成功させることです。これを修正する方法は?

ここに画像の説明を入力

ここに画像の説明を入力

アップデート:

Android.mkファイルの場所をAndroidManifest.xml存在する場所に変更し、Android.mk.

ifeq ($(TARGET_FWK_SUPPORTS_FULL_VALUEADDS),true)
ifeq ($(TARGET_BUILD_JAVA_SUPPORT_LEVEL),platform)

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

res_dir := res $(LOCAL_PATH)/res

LOCAL_MODULE_TAGS := optional
#LOCAL_SDK_VERSION := current

LOCAL_SRC_FILES := $(call all-java-files-under, java)

LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dir))
LOCAL_USE_AAPT2 := true
LOCAL_JAVA_LIBRARIES := com.google.android.material_material \

LOCAL_STATIC_ANDROID_LIBRARIES := \
    androidx.core_core \
    androidx.appcompat_appcompat \
    androidx.fragment_fragment \
    android-support-constraint-layout \

LOCAL_DEX_PREOPT := false
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true
#LOCAL_PRODUCT_MODULE := true
LOCAL_PACKAGE_NAME := mediadecode
LOCAL_PRIVATE_PLATFORM_APIS := true

include $(BUILD_PACKAGE)

endif
endif

今、私は 2MB のアプリを取得しています。アプリはインストール後にデバイスに表示されますが、実行するとすぐにエラーでクラッシュします。

--------- beginning of crash
04-21 21:43:20.852  4319  4319 E AndroidRuntime: FATAL EXCEPTION: main
04-21 21:43:20.852  4319  4319 E AndroidRuntime: Process: com.example.mediadecode, PID: 4319
04-21 21:43:20.852  4319  4319 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.mediadecode/com.example.mediadecode.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.mediadecode.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.mediadecode-vTqIZ9aZv0FsEDQ8xzj4GA==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.mediadecode-vTqIZ9aZv0FsEDQ8xzj4GA==/lib/arm64, /system/lib64, /system/product/lib64]]
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3195)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3410)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2017)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:107)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:214)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7397)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
04-21 21:43:20.852  4319  4319 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.mediadecode.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.mediadecode-vTqIZ9aZv0FsEDQ8xzj4GA==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.mediadecode-vTqIZ9aZv0FsEDQ8xzj4GA==/lib/arm64, /system/lib64, /system/product/lib64]]
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:41)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at android.app.Instrumentation.newActivity(Instrumentation.java:1251)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3183)
04-21 21:43:20.852  4319  4319 E AndroidRuntime:        ... 11 more

形成されたapkの内容は、 ここに画像の説明を入力

Gradleでビルドする内容は、 ここに画像の説明を入力

mm で apk をビルドして正常に実行するにはどうすればよいですか?

4

1 に答える 1