2013-02-13 2 views
2

Я добавил Google Play Services в качестве проекта библиотеки в свой проект Android в Intelli-J, но кажется, что ресурсы по-прежнему не распознаются IDE. Я получаю следующую ошибку, когда приложение пытается раздуть карту:Intellij IDEA не распознает ресурсы библиотеки Android

ERROR/AndroidRuntime(16002): FATAL EXCEPTION: main 
    java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable 
    at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source) 
    at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source) 

Вот код фрагмента в формате XML.

<fragment 
     xmlns:map="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="200dp" 
     class="com.google.android.gms.maps.SupportMapFragment" 
     map:cameraZoom="13" 
     map:mapType="normal" 
     map:uiCompass="false" 
     map:uiRotateGestures="true" 
     map:uiScrollGestures="false" 
     map:uiTiltGestures="true" 
     map:uiZoomGestures="true" /> 

В maps_attrs.xml в Google Play Project, <declare-styleable name="MapAttrs"> "MapAttrs" выделяется красным цветом.

Код корректно функционирует при компиляции в Eclipse.

Кто-нибудь знает, как получить ИДЕИ для распознавания ресурсов?

+0

Убедитесь, что проект библиотеки правильно сконфигурированный и добавляется к зависимостям для основного проекта. JAR, если в проекте библиотеки должна быть включена опция ** Экспорт **. [Проверьте эту проблему] (http://youtrack.jetbrains.com/issue/IDEA-96525), чтобы узнать, как импортировать проекты библиотеки без источников в IDEA. Если это не поможет, поделитесь примером проекта, чтобы воспроизвести проблему. – CrazyCoder

+0

Пример проекта находится здесь: https://github.com/TheDirtyCalvinist/MapStyleable Насколько я могу судить, все правильно в свойствах проекта. У меня нет проблем с поиском классов, просто свойствами ресурса, в данном конкретном случае атрибутами стиля. –

+0

Похоже, что Intellij неправильно генерирует файл R.java для Google Play-сервисов. Когда библиотека google-play-services встроена в Eclipse, R.java заполняется, но не в Intellij. –

ответ

0

Мне удалось найти временное решение, переустановив Службы Google Play с Android, скомпилировав его в Eclipse, а затем снова подключив его к проекту IDEA и перенаправляя выход R.java из google-play-services-lib в (изменение каталога для выхода R.java под вкладкой компилятора для Android-лица модуля google-play-сервисов от «.../gen» до «.../_ gen»). Я все еще не совсем уверен, что это вызвало.

Похоже, JetBrains собирается изменить это поведение в 12.1: http://youtrack.jetbrains.com/issue/IDEA-99045

+0

Текущее поведение среды IDE не должно вызывать никаких проблем, если вы не используете какие-либо внешние инструменты, генерирующие дополнительные файлы в папке «gen» или обрабатывающие его содержимое, поэтому это выглядит как ошибка. Я попытался построить проект из github, но у меня есть еще две ошибки времени выполнения: «API Google Maps Android поддерживает только OpenGL ES 2.0 и выше» и «API-ключ не найден». Кажется, мне удалось их исправить, но после этого приложение корректно работало без ошибок во время выполнения. Не могли бы вы создать проблему в трекер JetBrains и приложить к ней образец проекта? – ekudel

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