由于序列化版本UID警告,无法完成生成



我们目前在这个项目中使用 greenDAO3。我相信我们在某个时候使用了 greenDAO2,因为似乎我们使用的是遗留生成器类。

因此,我正在尝试为应用程序中的新功能向数据库添加一个新表。我对 greenDAO 不是很熟悉,但我认为让它在构建时使用 Gradle 自动生成文件会更容易。

一切正常,但是在我的root.gradle和app.gradle中添加了一些东西后,我收到此错误。

ERROR: Found 1 problem(s) parsing "/Users/Dustin/Projects/project/app/src/main/java/com/package1/package2/db/MyClassTest.java". First problem:
Pb(96) The serializable class MyClassTest does not declare a static final serialVersionUID field of type long (536871008 at line 18).

这些是我所做的更改。

diff --git a/app/build.gradle b/app/build.gradle
index 40b3b80d..60f2a688 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,4 +1,7 @@
 apply plugin: 'com.android.application'
+apply plugin: 'com.google.gms.google-services'
+apply plugin: 'org.greenrobot.greendao'
+apply plugin: 'com.google.gms.google-services'
 apply plugin: 'io.fabric'
 android {
@@ -234,4 +237,7 @@ dependencies {
     implementation 'com.android.support.constraint:constraint-layout:1.1.3'
 }
-apply plugin: 'com.google.gms.google-services'
 No newline at end of file
+greendao {
+    schemaVersion 24
+}
+

当我禁止显示警告时,它会继续到 db 文件夹中的下一个可序列化类。我真的不想抑制警告,因为在这种情况下,这似乎是不好的做法。

在 MyClassTest 中添加一个 serialVersionUID 字段.java
一个好的做法可能是设置上次修改日期

public class MyClassTest {
    private static final long serialVersionUid = 6082019L;
}

更多信息可在这篇文章中找到

相关内容

最新更新