Ответ 1
Перейдите на вкладку "Заказ и экспорт" в разделе "Настройка пути сборки" и установите флажок рядом со всеми необходимыми библиотеками.
Этот проект работал чудесами перед обновлением до ADT22. Я уже потерял день из-за того, что не знал, что мне нужно загрузить инструменты сборки, и я боюсь, что из-за этого я потеряю еще один.
Когда я пытаюсь создать тот же код, который работал два дня назад, я получаю это исключение:
com.cidaut.blueparking fatal error : Unable to instantiate activity \
ComponentInfo{com.cidaut.blueparking/com.cidaut.blueparking.SplashScreen_}: \
java.lang.ClassNotFoundException: \
Didn't find class "com.cidaut.blueparking.SplashScreen_" on path: \
/data/app/com.cidaut.blueparking-1.apk
java.lang.RuntimeException: Unable to instantiate activity \
ComponentInfo{com.cidaut.blueparking/com.cidaut.blueparking.SplashScreen_}: \
java.lang.ClassNotFoundException: \
Didn't find class "com.cidaut.blueparking.SplashScreen_" on path: \
/data/app/com.cidaut.blueparking-1.apk
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: \
Didn't find class "com.cidaut.blueparking.SplashScreen_" on path: \
/data/app/com.cidaut.blueparking-1.apk
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
... 11 more
Я нахожу странным, что он пытается найти класс в файле APK, но что угодно. Есть ли какое-либо решение для этого?
Кстати, мой путь к классам включает исходную папку, в которой AndroidAnnotations генерирует код, так что не проблема.
Здесь мое окно "Заказ и экспорт"
Журнал ошибок генерации журнала AndroidAnnotations
EDIT: теперь он работает
Следующей процедурой я придерживался:
Теперь он работает. Я не могу поверить, что потерял почти 12 часов из-за этого...
Перейдите на вкладку "Заказ и экспорт" в разделе "Настройка пути сборки" и установите флажок рядом со всеми необходимыми библиотеками.
Вот решение:
В Eclipse щелкните правой кнопкой мыши имя проекта и выберите "Свойства"
Выберите вкладку "Заказ и экспорт", затем убедитесь, что заблокированы личные библиотеки Android.
Очистите свой проект, выбрав Project → Clean
Это должно работать
У меня была такая же проблема, и для меня это было связано с опцией "Разрешить выходную папку для исходной папки" в проекте "путь сборки Java". Я снял флажок и снова проверил, и проблема исчезла. По какой-либо причине используемый путь отличается от стандартного. Возможно, это связано с m2e android.
У меня была аналогичная проблема - оказалось, что несоответствие JAR библиотеки поддержки, включенной в проект ссылок, вызывало проблему. Убедившись, что каждый проект использовал ту же версию библиотеки поддержки, он исправил ее для меня.
Попадая сюда с ответом, если кто-то столкнется с этой проблемой в будущем. Я добавил ActionBarCompat
в мое приложение, которое использовало AndroidAnnotations и имело эту же проблему. Оказывается, что все библиотеки, которые используются конкретным приложением, должны жить в родительском приложении. Таким образом, несмотря на то, что ABC была проектом библиотеки в Eclipse и скомпилированным кодом, мне все еще нужно было включать ABC в качестве библиотеки в моем приложении.