2013-07-03 1 views
1

У меня возникла проблема с обработкой зависимостей IntelliJ в отношении внешних модулей. Вот какой-то контекст:Android NoClassDefFound при ссылке на класс из внешних библиотек (IntelliJ IDEA 12)

Я пишу приложение для Android, которое реализует Карты Google. Для моего текущего набора функций мне нужны две внешние библиотеки - Библиотека Служб Службы Google и mapex (Третья библиотека расширений google map, расположенная здесь https://code.google.com/p/mapex/). Я фактически построил большую часть этого проекта в Android Studio, прежде чем мне было рекомендовано перейти на IntelliJ из-за более легкой обработки зависимостей. Но теперь я здесь и все еще испытываю проблемы.


Моя ошибка

При попытке создать объект из класса, расположенный в MAPEX пакете (com.androidnatic.maps), я получаю эту ошибку при запуске активности мнение содержится в (объекте еще не создан):

07-03 11:40:35.837: ERROR/dalvikvm(3585): Could not find class 'com.androidnatic.maps.SimpleMapView', referenced from method com.example.myproject.MapActivity.showHeatMap

и затем, после создания, мое приложение силы закрывается и оставляет это позади в LogCat:

7-03 11:40:45.467: ERROR/AndroidRuntime(3585): FATAL EXCEPTION: main java.lang.NoClassDefFoundError: com.androidnatic.maps.SimpleMapView at com.example.myproject.MapActivity.showHeatMap(MapActivity.java:492)

Но я полностью в тупике, потому что моя IDE дает мне никаких признаков того, что что-то не так! Классы автоматически заполняются при попытке доступа к ним из MyProject.

ide-fill-in http://www.tonyandrys.com/img/fillin.jpg

Нет сборки ошибок о недостающих классов, отсутствующих модулей, определений классов, или что-нибудь связаны между собой.

Получаю те же результаты, если я попытаюсь получить доступ к классу через его полное имя пакета.

// No dice. 
final SimpleMapView mapView = new SimpleMapView(this, "apikey"); 
final com.androidnatic.maps.SimpleMapView mapView = new com.androidnatic.maps.SimpleMapView(this, "apikey"); 

Похоже, что проблема связана с тем, что приложение работает на моем телефоне, насколько это касается моей IDE.


Вот структура MyProject:
main-project-structure http://www.tonyandrys.com/img/mainstructure.jpg

Вот настройки моего основного проекта зависимостей (где я предполагаю я облажался где-то): project-structure http://www.tonyandrys.com/img/projectstructure.jpg

А вот структура MAPEX библиотечный модуль:
mapex-lib http://www.tonyandrys.com/img/mapexstructure.jpg

Класс файлы, которые я пытаюсь получить в Live MapExLib/gen и MapExLib/src, которые в настоящее время отмечены как исходные каталоги (синий).

Есть ли у кого-нибудь идеи о том, как исходить отсюда?

+0

'File-> Invalidate caches' и попробуйте еще раз , – Simon

+0

Просто попробовал это: 'File -> Invalidate Caches', IntelliJ restarted,' Build -> Rebuild Project', затем запустил MyProject, но, к сожалению, он ничего не исправил. – aerotwelve

+0

Извините. Ваша установка выглядит хорошо для меня. Надеюсь, что кто-то еще придет .. – Simon

ответ

0

Попробуйте сделать это: Android, IntelliJ Idea, changing module type

У меня была такая же ошибка «Не удалось найти класс XXX из ссылочного метода XXX» с Intellij, включая модуль Android испытания и тест, который не смог найти активность класс в любом месте. я установил внутри структуры проекта главного модуля Facet Android в Библиотека Модуль (галочка), и она работала ...

Дайте нам знать

Смежные вопросы