簡體   English   中英

在 Android 生成文件中包含支持庫 - ClassnotfoundException

[英]Including support libraries in Android makefile - ClassnotfoundException

我正在使用完整的 android 構建並構建一個系統應用程序。 我使用 Android Studio 創建了該應用程序,如果我使用 Studio 構建,它可以正常工作。 然后我將我的代碼放在 Android 樹中並使用 Android.mk 文件編譯 apk 並且我也包含了所有庫 - 動態而不是靜態(應用程序在我進行靜態鏈接時給出了很多錯誤)。 但是當我將應用程序放在 /system/app 文件夾中並啟動它時,它會為我提供 MainActivity 的 ClassNotFoundException。 我注意到的另一件事是,當我更改我的 mainActivity 從 Activity 而不是 AppCompatActivity 擴展時,ClassNotFoundException 消失了(其他相關錯誤開始出現,但這是預期的,因為我需要 AppCompatActivity)。

我該如何解決這個問題。 這是我的 Android.mk 文件:

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

LOCAL_MODULE_TAGS := eng

LOCAL_PROGUARD_ENABLED := disabled

LOCAL_SRC_FILES := $(call all-java-files-under, src) src/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl
LOCAL_AIDL_INCLUDES := src/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl

LOCAL_AAPT_FLAGS := --auto-add-overlay
LOCAL_AAPT_FLAGS += --extra-packages android.support.v7.appcompat:android.support.v7.recyclerview

LOCAL_RESOURCE_DIR := \
    frameworks/support/v7/appcompat/res \
    frameworks/support/v7/recyclerview/res \
    $(LOCAL_PATH)/res

LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 \
    android-support-v7-recyclerview \
    android-support-v7-appcompat \


LOCAL_PACKAGE_NAME := MyApp
LOCAL_SDK_VERSION := current
LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)

更改 LOCAL_PACKAGE_NAME:= MyApp

LOCAL_PACKAGE_NAME:= com.full_package_name_for_you_app.MyApp

例如

LOCAL_PACKAGE_NAME:= com.xyz.MyApp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM