SherlockMapActivity не работает
Так что у меня огромная проблема, и мне нужно исправить ее как можно быстрее. Я сделал формат моего компа и установил новую версию Eclipse. Я импортировал свой проект, а также 2 библиотеки, которые он использует. Эти 2 библиотеки называются v7/gridlayout и actionbarsherlock/library. Под андроидом и ссылкой видно, что у меня есть те 2 библиотеки, которые включены. Они выглядели скомпилированными просто отлично. Но когда я очищаю свой проект, я получаю сообщение об ошибке:
The type com.google.android.maps.MapActivity cannot be resolved. It is indirectly referenced from required .class files
на линии:
public class MainActivity extends SherlockMapActivity implements ActionBar.TabListener
Итак, по какой-то причине кажется, что мое приложение должно быть построено как Google API. Так что я делаю это. Теперь мой R-файл не создается, и я получаю эту ошибку:
R cannot be resolved to a variable
Я думаю, что это, вероятно, означает, что у меня есть некоторые ошибки в моих макетах, но где? Когда я проверяю их, я обнаруживаю, что все они имеют одинаковую ошибку:
Missing styles. Is the correct theme chosen for this layout?
Use the Theme combo box above the layout to choose a different layout, or fix the theme style references.
Итак, я вернулся к проблеме, что с Шерлоком что-то не так...
Есть идеи?
кстати: в.xml я использую это как тему:
xmlns:android="http://schemas.android.com/apk/res/android"
У меня есть ощущение, что проблема заключается здесь:
[2012-09-27 12:54:37 - com.motiviti.zmapp.MainActivity] C:\Users\mitja\Desktop \zmap\res\values-v11\styles.xml:3: error: Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Holo.Light'.
[2012-09-27 12:54:37 - com.motiviti.zmapp.MainActivity] C:\Users\mitja\Desktop\zmap\res\values-v14\styles.xml:3: error: Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Holo.Light.DarkActionBar'.
4 ответа
Есть несколько моментов, которые вы должны проверить:
Так как вы меняете Eclipse, я полагаю, вы загрузили последний плагин ADT. Если в вашем проекте есть папка libs и все ваши библиотеки есть, проверьте свойства проекта, есть ли ссылки на эти библиотеки в пути сборки java. Если это так, удалите их, так как последний плагин adt сделает это за вас (помните, что имя вашей папки должно быть libs). У меня уже были проблемы с этим, и мне было трудно найти.
Если я не ошибаюсь, Шерлок - библиотека проекта, связанная с вашим проектом. Это означает, что проект Sherlock должен быть в вашем рабочем пространстве и должен быть открытым, чтобы его можно было компилировать. См. http://actionbarsherlock.com/usage.html
От использования АБС:
Since the library is an extension of the official support library you must also have the android-support-v4.jar referenced by your project
,Проверьте, что вы компилируете с Android 4.0+, так как Шерлок требует этого:
Due to its use of the native action bar and its related classes on Ice Cream Sandwich, the library requires that both it and your project are compiled with Android 4.0 or newer. The project also requires that you are compiling with JDK 1.6 in both your editor and any build systems that you may be using.
В моем случае решением было переключиться с сборки на Android 4.0 SDK на сборку на основе Google APIs SDK Android 4.0.
Проверьте в свойствах своего проекта, что вы выбрали версию API платформы той версии платформы, которую вы используете. Я получил точно такое же сообщение об ошибке, когда я установил версию платформы настроек своего проекта без API Google.
В своем манифесте убедитесь, что вы используете тему ActionBarSherlock.
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/Theme.Sherlock">
Также добавьте:
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="16"/>
Установите для своей цели сборки API Google, уровень API 16 (или не менее 15, но измените свой манифест соответствующим образом).
Убедитесь, что вы используете библиотеку поддержки.