использовать библиотеку ActionBarSherlock, ошибка после использования sherlock в качестве библиотеки - PullRequest
2 голосов
/ 07 февраля 2012

Мой собственный проект использует Android 2.1 API 7 .

Для реализации панели действий я использую библиотеку ActionBarSherlock . Я импортировал библиотеку sherlock в свой Eclipse как существующий проект. Для sherlock целевой платформой является Android v3.2 API 13 .

Затем я добавил sherlock как проект библиотеки в свой собственный проект. Затем я замечаю, что в моем собственном проекте нет файла R.java в папке gen/, и я получил сообщение об ошибке, подобное следующему в консоли eclipse:

JakeWharton-ActionBarSherlock-436230d/library/res/values-v11/abs__styles.xml:4: error: Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Holo'.

JakeWharton-ActionBarSherlock-436230d/library/res/values-v11/abs__styles.xml:48: error: Error: No resource found that matches the given name: attr 'android:actionBarSize'.

JakeWharton-ActionBarSherlock-436230d/library/res/values-v11/abs__styles.xml:49: error: Error: No resource found that matches the given name: attr 'android:actionBarStyle'.

...

Я подумал, что это возможно из-за того, что sherlock должен использовать более высокую версию API, поэтому я попытался установить целевую платформу на 4.03 API 15 в sherlock проекте , Но это не помогает.

Кто-нибудь, кто использует Шерлока, сталкивался с такой же ошибкой ?? Как я могу решить эту проблему?

P.S. мой файл манифеста проекта:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="my.frag.test"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MyActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

Ответы [ 2 ]

6 голосов
/ 07 февраля 2012

Для правильной поддержки и ваше приложение, и библиотека должны быть скомпилированы с Android 3.2.

Вы можете установить minSdkVersion в манифесте всего на 4, однако, чтобы все еще поддерживать обратно через Android 1.6. targetSdkVersion также должен быть установлен на '11' или выше.

Посмотрите примеры в папке samples/ проекта, чтобы понять, как это сделать.

1 голос
/ 07 февраля 2012

Вы должны установить цель сборки на API13 в своем собственном проекте.

Минимальный уровень API, на котором работает ваше приложение, определяется android: minSdkVersion в вашем манифесте, а НЕ целью сборки.

Установка целевого объекта сборки для API13 НЕ делает ActionBar доступным на устройствах 2.1, и поэтому у вас есть ActionBarSherlock.

...