我正在使用以下 ProGuard 规则:
-keepclassmembers 类 * 扩展 org.greenrobot.greendao.AbstractDao { *; } -保持类**$属性 -保留类 org.greenrobot.greendao.** -keepclassmembers 类 org.greenrobot.greendao.** { *; } # 如果不使用 SQLCipher: -dontwarn org.greenrobot.greendao.database.** # 如果你不使用 RxJava: -dontwarn rx.**
启动应用程序时,我收到以下崩溃日志:
java.lang.RuntimeException:无法创建应用程序 my.app.package.MyApplication:org.greenrobot.greendao.DaoException:无法初始化 DAOConfig 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:4569) 在 android.app.ActivityThread.access$1500(ActivityThread.java:148) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5272) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704) 原因:org.greenrobot.greendao.DaoException:无法初始化 DAOConfig 在 org.greenrobot.greendao.internal.DaoConfig.(未知来源) 在 org.greenrobot.greendao.AbstractDaoMaster.registerDaoClass(未知来源) 在 my.app.package.database.model.DaoMaster.(未知来源) 在 my.app.package.database.model.DaoMaster.(未知来源) 在 my.app.package.ZamgApplication.onCreate(未知来源) 在 android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1011) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:4566) 在 android.app.ActivityThread.access$1500(ActivityThread.java:148) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5272) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704) 引起:java.lang.ArrayIndexOutOfBoundsException: length=5; 索引=6 在 org.greenrobot.greendao.internal.DaoConfig.reflectProperties(未知来源) 在 org.greenrobot.greendao.internal.DaoConfig.(未知来源) 在 org.greenrobot.greendao.AbstractDaoMaster.registerDaoClass(未知来源) 在 my.app.package.database.model.DaoMaster.(未知来源) 在 my.app.package.database.model.DaoMaster.(未知来源) 在 my.app.package.ZamgApplication.onCreate(未知来源) 在 android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1011) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:4566) 在 android.app.ActivityThread.access$1500(ActivityThread.java:148) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5272) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)
在没有 ProGuard 的情况下编译应用程序时,一切正常。
我在这里缺少任何配置吗?我在谷歌上找不到任何东西......