Для потомков, я только что получил эту ошибку, потому что я использовал Arrays.copyOf()
, который не поддерживается Java 1.5, что соответствует Android Level 4. Поскольку я работал, включая библиотеки, разработанные под 1.6, они скомпилировались нормально. Я только увидел проблемы, когда переместил данный класс в свой проект Android - тогда ошибка была подсвечена.
Uncaught handler: thread main exiting due to uncaught exception
java.lang.VerifyError: com.j256.ormlite.dao.BaseDaoImpl$DaoConfigArray
at com.j256.ormlite.dao.BaseDaoImpl$1.initialValue(BaseDaoImpl.java:71)
at com.j256.ormlite.dao.BaseDaoImpl$1.initialValue(BaseDaoImpl.java:1)
at java.lang.ThreadLocal$Values.getAfterMiss(ThreadLocal.java:429)
at java.lang.ThreadLocal.get(ThreadLocal.java:66)
В этой строке я пытался сделать new DaoConfigArray
, и у этого класса была следующая строка:
// copyOf is only supported in Java >= 1.6
doArray = Arrays.copyOf(daoArray, newLength);
Что еще более усложнило, так это то, что строка 71 указывала на инициализацию ThreadLocal
, которая, как мне показалось, изначально была причиной проблемы.
private static final ThreadLocal<DaoConfigArray> daoConfigLevelLocal
= new ThreadLocal<DaoConfigArray>() {
@Override
protected DaoConfigArray initialValue() {
return new DaoConfigArray();
}
};