我有一个稳定的应用程序,现在已经工作了几个月,在添加appcompat_v7以支持Material主题后,一切都变成了废话。我刚刚将Activity更改为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不喜欢我们的multi-dex配置,或者让Gradle没有pre-dex库。
答案 0 :(得分:2)
您应该在main dex中包含所有注释类。
症状不同,但解决方案与this question相同:
如何计算要放在main-dex-list文件中的类?
有script可以为您生成它。我写了一篇blogpost来说明如何使用它。
更新(2014年10月31日):
Gradle插件v0.14.0现在自动完成。请参阅我的回答here。