Я обновил свой пакет android-sdk от r16 до r17. Я также обновил Eclipse ADT-Plugin.
Мой проект отлично работал с r16 (android-sdk r16 и Eclipse ADT Plugin v16), но теперь приложение не запускается:
Classloader не может найти MainActivity. MainActivity - это первое действие, которое запускается (оно правильно объявлено в AndroidManifest).
03-22 15:07:28.984: E/AndroidRuntime(22106): Caused by: java.lang.ClassNotFoundException: my.....MainActivity 03-22 15:07:28.984: E/AndroidRuntime(22106): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 03-22 15:07:28.984: E/AndroidRuntime(22106): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 03-22 15:07:28.984: E/AndroidRuntime(22106): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 03-22 15:07:28.984: E/AndroidRuntime(22106): at android.app.Instrumentation.newActivity(Instrumentation.java:1023) 03-22 15:07:28.984: E/AndroidRuntime(22106): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)
Название пакета 100% справа. Я даже проверил отмеченную версию моего проекта (у меня выпущен проект, и я всегда отмечаю свои версии) и попробовал его: тот же результат.
Что я уже пробовал (я использую Arch Linux):
- удалить инструменты android-sdk + android-sdk-platform (и переустановить их)
- удалить всю папку Android (/opt/android-sdk) и переустановить пакеты, загрузить целевую платформу
- удалить ~/.android
- удалить ~/.eclipse
- переустановите Eclipse ADT-Plugin
- воссоздать виртуальные устройства
- создать новый проект (новый проект работает)
- распакуйте .apk файл и просмотрите скомпилированные классы с помощью dexdump: apk файл содержит MainActivity
- Я прочитал Android-SDK-Release-Notes для чего-то связанного, но ничего не нашел
- И, конечно, перестройте проект (чистая + сборка, я даже вручную удаляю папку bin)
Единственное, что действительно работало, - это включить мой ноутбук (все еще android-sdk r16).
Итак... что я делаю неправильно? Это, наверное, что-то простое...
Спасибо!