【问题标题】:MemoryLeakMonitor.jar is not exist! (Huawei Phone)MemoryLeakMonitor.jar 不存在! (华为手机)
【发布时间】:2020-07-04 16:30:35
【问题描述】:

所以我有一个健身应用程序,其中涉及使用存储所有信息的数据库。

到目前为止,我一直使用虚拟设备来运行这个应用程序。

每次更改此应用程序数据库时,我都会擦除每个模拟器中的数据,增加数据库版本号,然后运行应用程序,一切正常。

前几天我决定使用我的华为 P20 Pro 而不是模拟器,我运行了该应用程序,它运行良好。

但是,在对数据库进行更改(并增加版本号)后,我的 P20 Pro 上的数据库不再初始化,我收到以下错误消息:

E/AwareLog: AtomicFileUtils: readFileLines file not exist: android.util.AtomicFile@b9caac1
E/MemoryLeakMonitorManager: MemoryLeakMonitor.jar is not exist!
E/AwareLog: AtomicFileUtils: readFileLines file not exist: android.util.AtomicFile@a6b9e54

我花了好几个小时在网上搜索问题的原因,但运气不佳。

收到同样错误信息的,好像都是华为用户……

MemoryLeakMonitor.jar is not exist! | Huawei Phone

(我不确定这是否相关)。

有谁知道错误消息的含义,以及为什么我无法在我的物理设备上初始化我的应用程序数据库?

数据库类(相关代码)

@Database(entities = {Junction.class, Exercise_Workout_Goals.class, Exercises.class, ExerciseType.class, Workouts.class,
        WorkoutType.class, Log_Entries.class, ChildExercises.class, ChildParentExerciseJunction.class}, version = 53, exportSchema = false)


    public static synchronized ExerciseDatabase getInstance(Context context) {
       
        if (instance == null) {
              
                instance = Room.databaseBuilder(context.getApplicationContext(),
                        ExerciseDatabase.class, "exercise_database")
                        
                        .fallbackToDestructiveMigration()
                 
                        .addCallback(roomCallback)
                        .build();
            }


        return instance;
    }

   

【问题讨论】:

  • 不要发布整个代码。只发布相关部分
  • 可能该错误消息与您的数据库无关。如果它还没有在商店里,也许你可以删除所有这些迁移。您是否尝试手动从手机中卸载它以使其“重新开始”?在错误发生之前你到底做了什么改变?
  • 我在数据库中添加了一些练习,并清除了日志条目表。我已经以与任何其他应用程序相同的方式从手机中卸载它,但是我不确定即使删除后应用程序数据是否仍存储在手机上的某个位置
  • @JoshBrett 我认为您发布的错误与您的数据库无关。此外fallbackToDestructiveMigration() 会在数据库版本更改时自动删除旧数据库中的所有内容并创建一个新数据库。在我的应用程序中,一切正常,尽管我只在 1 和 2 之间切换版本号(看到你达到 53 xD)并在三星的 API 级别 29 上进行了测试。你能在另一部手机上测试吗?
  • 你的华为手机有网络连接吗?是否也删除了应用的缓存?

标签: java android android-emulator


【解决方案1】:

最好在重新安装应用时同时清除缓存和应用数据。

当您的应用程序想要再次访问数据时使用缓存。

应用数据存储设置和数据库等信息。 可能,您的应用程序引用了旧的数据库和/或用户设置,当重新安装应用程序时,它可能具有不同的表和结构,然后导致应用程序崩溃。 在您的情况下,删除应用程序数据是有效的(当您这样做时,它也会清除缓存)。 另请参阅: https://www.androidpolice.com/2020/05/26/clear-app-cache-data-android/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 2021-01-03
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多