我有一个稳定的应用程序已经运行了几个月了,在添加了appcompat_v7来支持material主题之后,一切都变得一团糟。我刚把我的活动改成actionbaractivity,主题改成theme.appcompat
每跑一次
java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
在随机库中或与视图无关的任意执行点中。它需要一个干净的构建和卸载才能使它再次工作。
java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
at java.lang.reflect.Field.getAnnotation(Native Method)
at java.lang.reflect.Field.getAnnotation(Field.java:212)
at com.j256.ormlite.android.DatabaseTableConfigUtil.configFromField(DatabaseTableConfigUtil.java:243)
at com.j256.ormlite.android.DatabaseTableConfigUtil.fromClass(DatabaseTableConfigUtil.java:50)
at com.j256.ormlite.db.SqliteAndroidDatabaseType.extractDatabaseTableConfig(SqliteAndroidDatabaseType.java:76)
at com.j256.ormlite.dao.DaoManager.createDao(DaoManager.java:67)
at com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper.getDao(OrmLiteSqliteOpenHelper.java:279)
编辑:
行为充其量是不稳定的。它可能会也可能不会正确构建和运行。我最好的猜测是appcompat_v7不喜欢我们的多dex配置,也不喜欢使用gradle到pre-dex库。
最佳答案
您应该在主索引中包含所有注释类。
症状不同,但解决方法与this question相同:
如何计算要放入主索引列表文件中的类?
有一个script可以为你生成它。我写了一个blogpost说明如何使用它。
更新(2014年10月31日):
GradlePluginv0.14.0现在会自动执行。看我的答案。