NoClassDefFoundError и несколько файлов dex определяют проблемы.

ummmХорошо, сейчас у меня глупые проблемы..

Я пытаюсь использовать сервисы Google Play в своем приложении.

я сослался на библиотеку, которую обслуживает google play, как в моем приложении, так и в BaseGameUtils, а затем я ссылаюсь на сервисы google play как на библиотеку для библиотеки BaseGameUtiles, и я получаю эту проблему. Невозможно выполнить dex: несколько файлов dex определяют Lcom/ google/android/gms/ads/AdActivity; "

обычно это означает, что у вас есть два файла .jar с одинаковым именем класса. Моя единственная проблема в том, что я не знаю, какие файлы jar имеют одинаковые классы.

Кроме того, у меня нет google-play-services в виде jar-файла в моей папке libs, и я не добавил его в качестве внешнего jar-файла в меню «Путь сборки Java».

Итак, все, что у меня есть, это две зависимости: google-play-servies и BaseGameUtils, которая также использует google-play-servies в качестве библиотеки. но в «частных библиотеках» я выпадаю для всех .jars, которые я добавил, а затем в него также включены сервисы google-play. что я не думаю, что должно быть там ..

Если я сниму флажок с параметра «частные библиотеки», он загрузится, но затем я получу ошибку «NoClassDefFoundError Android Project». Я обновил ADT до 23.0.2 или какой-либо самой новой версии на сегодня 13.07.14 -

Итак, вот суть проблемы, если я отмечу опцию «частные библиотеки», у меня возникнет проблема с несколькими файлами dex, я думаю, что это как-то связано с библиотеками поддержки Android v4. но «Несколько файлов dex определяют Lcom/google/android/gms/ads/AdActivity;» это ошибка, которую я получаю.

если я сниму флажок с опции «частные библиотеки», я получу NoClassDefFoundError тьфу .. может кто-нибудь сказать мне, что происходит, пожалуйста.

тьфу

вот картина того, что я сделал.. после того, как вы попросили меня сделать.. г-н.. rahandandn (извините за вырезание вашего имени)да...

yeo снова

и вот еще проблемы, которые он мне показывает..

введите здесь описание изображения

вот опция меню пути сборки java для basegameutiles.. basegameutils

пытается использовать сервисы Google Play для списков лидеров и достижений.

говорят, используйте сервисы google play в качестве библиотеки как для своего приложения, так и для BaseGameUtils.

они также говорят использовать сервисы google plat в качестве библиотеки для BaseGameUtils.

когда я это делаю.. я получаю

"Невозможно выполнить dex: несколько файлов dex определяют Lcom/google/android/gms/ads/AdActivity; "

это означает, что два файла jar с одинаковым именем или что-то в этом роде имеют одинаковые имена классов.

хорошо, это означает удалить дубликат .. но, парень, где он?

это путь сборки Java и экспорт заказа для сервисов Google Play. 1

2

вот некоторая информация о BaseGameUtils

введите здесь описание изображения

4

и, наконец, мое приложение, с которым я работаю..

5

6


person losethequit    schedule 13.07.2014    source источник
comment
проверьте папку libs ваших проектов. У вас есть дубликаты банок. они могут быть разных версий, и в этом случае вы можете скопировать последнюю библиотеку поддержки в папку libs ваших проектов.   -  person Raghunandan    schedule 13.07.2014
comment
@raghunandan хм .. у меня только 1 копия каждой банки в моей папке lib ..   -  person losethequit    schedule 13.07.2014
comment
на картинке банки находятся в частных библиотеках Android, а также выше Android 4.4w. Проверь их   -  person Raghunandan    schedule 13.07.2014
comment
Ваша проблема в том, что банки должны быть только в ваших частных библиотеках andorid. Если вы ссылаетесь на библиотечный проект, который входит в список зависимостей. Пожалуйста, убедитесь, что вы избавились от дубликатов банок.   -  person Raghunandan    schedule 13.07.2014
comment
@raghunandan хорошо, спасибо, сэр, за вашу помощь, я думаю, что понимаю проблему ... вы говорите, что библиотеки, которые я добавляю в папку libs, никогда не должны отображаться в моем пути сборки Java, что означает прекращение добавления внешних банок, во-вторых, ваш говоря, что если я добавлю библиотеку, она будет отображаться в раскрывающемся списке зависимостей Android, но она не должна быть там, потому что им нужно только быть сценой в раскрывающемся списке библиотек Android ... это правильно? и если это так, как мне удалить библиотеки в раскрывающемся меню зависимостей Android?   -  person losethequit    schedule 13.07.2014
comment
эй, посмотри на изображение образца шахты. FaceBookSDK, EventBus, Bolts — это библиотечные проекты. Банки находятся в частных библиотеках (добавлены в папку libs проекта). Сделайте свой таким же   -  person Raghunandan    schedule 13.07.2014


Ответы (1)


У вас есть дубликаты банок. Убедитесь, что вы удалили их. Я не могу указать, какие из них являются дубликатами, глядя только на картинку. Так выложил мой образец

Пример моего проекта в eclipse с проектами jar и referencede library

Примечание. У меня есть android-support-v4.jar как в FaceBook, EventBus, так и в моем собственном проекте. Они одной версии.

введите здесь описание изображения

введите здесь описание изображения

Глядя на закрывающуюся картинку, вы также не можете определить цель android-17...

Не удалось разрешить цель "android-XX"

person Raghunandan    schedule 13.07.2014
comment
о, вы говорите, что в вашей библиотеке facebook где-то есть поддержка Android .jar, и, поскольку он у вас есть в реальном проекте, который вы публикуете, он вам не нужен в проекте facebook, поэтому вы его удалили? @raghunandan - person losethequit; 13.07.2014
comment
Я хотел бы упомянуть, что мне приходилось ссылаться на сервисы Google Play как на библиотеку в BaseGameUtiles и в проекте, который я публикую. - person losethequit; 13.07.2014
comment
Я когда-нибудь говорил об удалении. На моем примере изображения нет повторяющихся банок. Проекты библиотек имеют andorid-support-v4.jar в своей папке libs. Все одной версии. На библиотечные проекты ссылаются только один раз. Примечание. Удалите дубликаты jar-файлов из пути сборки проектов. - person Raghunandan; 13.07.2014
comment
о, значит, удалите поддержку Android .jar в библиотеках basegameutiles и google play servies или проектах, импортированных для использования в качестве библиотек. - person losethequit; 13.07.2014
comment
Я добавил к моему вопросу изображение, показывающее меню пути сборки java для basegameutils, спасибо за вашу помощь и терпение, сэр. - person losethequit; 13.07.2014
comment
нет необходимости удалять android-support-v4.jar из проектов вашей библиотеки. Он будет в папке libs. Они должны быть одной версии. Удалите повторяющиеся банки. Надеюсь, я ясно дал понять. Я больше не могу. Удачи. - person Raghunandan; 13.07.2014
comment
я слышу тебя, братан.. я просто не вижу этот jar-файл, который находится в двух местах.. это так раздражает.. @raghunandan - person losethequit; 13.07.2014
comment
больше ничем помочь не могу. Может быть кто-то сможет лучше выразить это и помочь решить проблему. Удачи - person Raghunandan; 13.07.2014