Intereting Posts
Обращение с PagerTitleStrip, щелчок в compatibiliy Фрагмент-ViewPager Проблема с панелью уведомлений в полноэкранном приложении Как нарисовать свободный полигон в карте Google V2 в Android? Отображение статуса для последнего элемента списка в ListView с помощью ViewHolder Есть ли причина не звонить setIntent при переопределении onNewIntent? Настройка AVD на те же спецификации, что и на физическом устройстве Отображение календаря в приложении для Android Как остановить Gradle для Android из Building * Все * Типы модулей библиотеки библиотеки на каждой сборке? Up-Sync и Down-Sync в Android? Горизонтальная ширина полосы выполнения в панели действий IndexOutOfBoundsException после повторного заполнения массива ArrayList (только для Marshmallow) Как проверить журнал сбоев с помощью android ndk в cocos2d-x Добавить идентификацию маркера на google maps v2 api для Android Чисто функциональное программирование на Android Есть ли способ создать графики xxhdpi, xhdpi, hdpi, mdpi и ldpi из крупномасштабного изображения?

Android-SDK r17 разрушает рабочие проекты

Я обновил свой пакет 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): вызвано: java.lang.ClassNotFoundException: my ..... MainActivity
 03-22 15: 07: 28.984: E / AndroidRuntime (22106): в 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): в 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).
Итак … что я делаю неправильно? Это, наверное, что-то простое …

Благодаря!

Solutions Collecting From Web of "Android-SDK r17 разрушает рабочие проекты"

Как уже сообщалось здесь и в другом месте, вам необходимо убедиться, что любые сторонние JAR, которые вы используете, живут в libs/ , как в вашем проекте, так и в любых проектах зависимых библиотек. Попробуйте это и посмотрите, поможет ли это.

Для тех разработчиков, которые используют прямые сборки Ant с пользовательским build.xml, который имеет переопределенные цели, которые относятся к «jar.libs.ref» , вы должны заметить, что это было заменено, поэтому ваша сборка завершится неудачно.

Изменение этого параметра на «project.libraries.jars» работало для моих целей, но вы, вероятно, должны проверить различия между предыдущими sdk / tools / ant / build.xml и новым. Всегда стоит взять копию этого файла, прежде чем обновлять инструменты SDK, так как сборка Ant довольно часто прерывается процессом обновления.

Иногда при закрытии / повторном открытии проекта требуется перезапуск eclipse, чтобы все работало так, как планировалось и ожидалось. Особенно, если вы обновили какой-либо компонент. Но, конечно, поскольку CommonsWare упоминает, что настройка папки библиотеки является обязательной.

Эта тема также обсуждается на форуме разработчиков Android . Волшебный рецепт, который работал для меня, был следующим: помимо библиотек с включенным возвратом, мне пришлось изменить целевой SDK в Project Properties вдали от 4.0.3 и обратно. Это исправило это.

Если вы не используете Maven, здесь приведен подробный справочник с фотографиями, например, из CommonsWare.

http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

Но если вы используете зависимости Maven, они не включены в проект библиотеки. Соединитель m2e-android все еще не знает, как это сделать, поэтому, если у вас есть проекты Android с Maven, не обновляйтесь до ADT 17.

Была выпущена новая версия 1.1.1 для Android Connector для M2E (m2e-android), и исправлена ​​ошибка с проектами Maven. https://github.com/rgladwell/m2e-android/issues/72

Я использовал одну ошибку при использовании ADT 18. Было несколько причин, в том числе необходимость переместить файлы jar из библиотеки lib в папку libs. Кстати, я использовал новую рабочую станцию ​​с установленным JDK 7. Мне потребовалось несколько часов, чтобы понять, что шаг сборки dex отклонил скомпилированные файлы классов из одного из файлов jar, которые я построил отдельно, потому что подпись класса неприемлема. Ошибка, о которой сообщалось на этапе сборки dex, была «обработка неполадок: неправильная маска файла класса (cafebabe) или версия (0033.0000)»

Мой файл jar состоит из чистого Java-кода, который я создаю с помощью ant. Сокращая длинную историю, я, наконец, сумел заставить все работать, как только я установил JDK Java 6, добавил путь к папке bin JDK 6 в качестве первого элемента в моей инструкции пути, а затем перестроил файл jar. Тогда я смог использовать файл jar в своем Android-проекте. Шаг сборки dex не отклонял классы из файла jar, и поэтому мое приложение запускалось на устройстве, а не с ошибкой ClassNotFoundException.

Я обнаружил несколько полезных советов: – Запустите ant с параметром командной строки -v и тщательно изучите вывод. Вот как я знал, что компилятор java6 использовался в конце всех моих изменений. И аналогично, когда я построил приложение для Android с помощью муравья, на этапе dex было достаточно деталей, чтобы сообщить мне, какие файлы jar обрабатываются и т. Д.

Аналогично в Eclipse я включил подробный уровень ведения журнала для выхода сборки Android. Настройки> Android> Build> Build output> Verbose

Выход adb logcat фактически сообщает о отсутствующих файлах класса при загрузке приложения. Если вы используете представление LogCat в Eclipse, соответствующие строки находятся в красном тексте и легко отображаются, как только вы знаете, что они существуют.

Надеюсь, это поможет другим в подобном затруднительном положении с тем, в котором я оказался, – где я создал свои собственные чистые java-файлы. Изменено несколько факторов, включая версию Java SDK и инструменты ADT, и диагностика различных причин была проблемой.