【问题标题】:NoSuchMethodError : No virtual method noBackupDirectory : andriodx.work on Android.mk (AOSP App - Android 10)NoSuchMethodError:没有虚拟方法 noBackupDirectory:Android.mk 上的 andriodx.work(AOSP 应用程序 - Android 10)
【发布时间】:2020-11-13 07:41:25
【问题描述】:

在 Android.mk 上使用 androidx.work aar 时出现以下运行时崩溃。我想在 Android 10 AOSP 平台应用中使用 Android Workmanager。

  11-13 12:47:10.805  6236  6236 E AndroidRuntime: java.lang.NoSuchMethodError: No virtual method noBackupDirectory(Z)Landroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder; in class Landroidx/sqlite/db/SupportSQLiteOpenHelper$Configuration$Builder; or its super classes (declaration of 'androidx.sqlite.db.SupportSQLiteOpenHelper$Configuration$Builder' appears in /system/priv-app/RemoteVoiceInput/RemoteVoiceInput.apk)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at androidx.work.impl.WorkDatabase$1.create(WorkDatabase.java:127)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at androidx.work.impl.WorkDatabase_Impl.createOpenHelper(WorkDatabase_Impl.java:254)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at androidx.room.RoomDatabase.init(RoomDatabase.java:159)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at androidx.room.RoomDatabase$Builder.build(RoomDatabase.java:852)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at androidx.work.impl.WorkDatabase.create(WorkDatabase.java:154)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at androidx.work.impl.WorkManagerImpl.<init>(WorkManagerImpl.java:236)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at androidx.work.impl.WorkManagerImpl.<init>(WorkManagerImpl.java:211)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at androidx.work.impl.WorkManagerImpl.initialize(WorkManagerImpl.java:190)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at androidx.work.WorkManager.initialize(WorkManager.java:210)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at androidx.work.impl.WorkManagerInitializer.onCreate(WorkManagerInitializer.java:40)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at android.content.ContentProvider.attachInfo(ContentProvider.java:2092)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at android.content.ContentProvider.attachInfo(ContentProvider.java:2066)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at android.app.ActivityThread.installProvider(ActivityThread.java:6983)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6528)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6445)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at android.app.ActivityThread.access$1300(ActivityThread.java:219)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:107)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:214)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7356)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    11-13 12:47:10.805  6236  6236 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
    11-13 12:47:10.806  4200  4200 I AvrcpMediaPlayerList: setActivePlayer(): setting player to com.google.android.music
    11-13 12:47:10.820  3880  3908 W RescueParty: Noticed 4 events for UID 1000 in last 2 sec
    11-13 12:47:10.822  4200  4200 D AvrcpGPMWrapper: Metadata currently out of sync for Google Play Music

包含 androidx.work 的示例 Andriod.mk

        LOCAL_STATIC_JAVA_LIBRARIES := \
            androidx.room_room-runtime \
            androidx.lifecycle_lifecycle-livedata \
            androidx.lifecycle_lifecycle-service \
            androidx.paging_paging-runtime
        
        LOCAL_STATIC_JAVA_AAR_LIBRARIES := \
            work-runtime-2.4.0
        
        LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
            work-runtime-2.4.0:libs/work-runtime-2.4.0.aar

【问题讨论】:

    标签: android-source androidx android-workmanager android-10.0 android.mk


    【解决方案1】:

    您还需要最新版本的androidx.sqlite。这就是您看到异常的原因。

    【讨论】:

    • 谢谢@Rahul。现在我遇到了这个问题。 “System.err:java.lang.RuntimeException:找不到 androidx.work.impl.WorkDatabase 的实现。WorkDatabase_Impl 不存在”。我猜“work-runtime-2.4.0.aar”的 annotationProcessorOptions 不可见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多