Сегодня у меня есть трассировка стека с очень странной ошибкой. На самом деле, я могу быть первым, кто получил это (YAY!), Так как до публикации этого вопроса единственные случаи "плохой редкой магии переключения" в Google были в исходном коде Android.
Вот часть stacktrace (Android 2.3.4):
java.lang.InternalError: bad sparse switch magic
at org.my.app.MyItemAdapter.(MyItemAdapter.java:64)
at org.my.app.MyActivity.onCreate(MyActivity.java:78)
Ошибка при выходе из конструктора MyItemAdapter. Поскольку это внутреннее, я уверен, что это не моя вина, но я просто хотел бы знать, что случилось в Dalvik VM.
Эта ошибка, похоже, связана с инструкцией switch
, просто для пояснения - я не использовал ее непосредственно в конструкторе MyItemAdapter. Чтобы понять, что пошло не так, мне, вероятно, придется внимательно изучить много кода, связанного с dalvik, поэтому я спрашиваю вас - может быть, есть кто-то, кто может объяснить мне - что пошло не так? Мне просто интересно.
РЕДАКТИРОВАТЬ
Вот фрагмент кода Android, который выдает эту ошибку: http://androidxref.com/source/xref/dalvik/vm/interp/Interp.cpp#1070