Вопрос по android – Не удается разрешить @ style / Theme.Sherlock

16

Я пытаюсь использовать Actionbar Sherlock 4, ориентируясь на sdk 15 и min sdk 8. После следования инструкциям, приведенным на веб-сайте Usage, и отличным видео, размещенным здесь:http://www.youtube.com/watch?v=avcp6eD_X2k

Я все еще сталкиваюсь с проблемой. Когда я пытаюсь добавить android: theme = & quot; @ style / Theme.Sherlock & quot; в мой файл манифеста я получаю сообщение об ошибке:

No resource found that matches the given name (at 'theme' with value '@style/Theme.Sherlock').

Я включил проект библиотеки Шерлока actionbar в свой проект, и операторы импорта там есть, и я не вижу никаких ошибок, и я

extends SherlockActivity implements ActionBar.TabListener

точно так же, как в демонстрационном коде и документации. Тем не менее, затмение дает мне эту ошибку. Есть идеи?

Вы используете затмение? Вы пометили Actionbar Sherlock как библиотеку Android? dmon

Ваш Ответ

6   ответов
1

Remove the "library" from "project properties"/build path and add library in "project properties"/Android/Library Right Click on project "Android Tools" -> "Add support library"
1

т. е. библиотеки и настройки Activity, сначала очистите и соберите их. Затем щелкните правой кнопкой мыши по параметру настройки проекта -> Свойства -> выберите второй вариант в левом меню (например, Android). на правой стороне их раздел библиотеки просто нажмите на добавить библиотеку. prper path автоматически входит в этот кадр. Это решит мою проблему, я не получил ошибок.

9

Есть проект Android, который использует ABS, работает на Gingerbread работает нормально, в ICS происходит сбой, происходит сбой под ICS, проверьте вашAndroidManifest.xml (урезали кусочки для краткости ...

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" android:theme="@style/Theme.Sherlock">

Это былоandroid:theme часть, которая вызвала сбой под ICS, она работала нормально в Gingerbread и более старых версиях !. Решением было полностью удалить его! Затем из вашей деятельности сделайте это:

@Override
public void onCreate(Bundle savedInstanceState) {
   if (Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH){
        this.setTheme(com.actionbarsherlock.R.style.Theme_Sherlock);
   }
   super.onCreate(savedInstanceState);
   ... // MORE CODE ....
}

Это исправило падение в ICS, стиль темы не понравился ICS, но он отлично работает для обеих версий менее 2.3 и 4.0 и выше ... странная ошибка, но я обнаружил ее по счастливой случайности!

Не забудьте применить тему перед вызовом собственного базового классаonCreate!

Привет! Рад выручить :)
Это не верно.Theme.Sherlock (и его варианты) можно использовать на всех уровнях API. Если он падает на ICS, то это по другой причине.
Прошу не согласиться, чтоis правильная тема, используемая в ABS ... просто говорю, и это самая последняя и самая лучшая используемая версия.
Это сделал это! Спасибо Ten_Ten_Steve
Это не должно быть необходимым. Я использовал ActionBarSherlock во многих типовых приложениях на всем от Android 2.1 до 4.0.3 со стилем, определенным в<application> без вредных последствий. Пока твой подходmay РаботаcurrentlyЯ бы не стал полагаться на это - если вы используетеSherlockActivity или родственник, вы действительно должны использовать правильную тему.
1

IMPORTANT! Copy the same android-support-v4.jar in both projects: in library and your project (this is the principal problem). Import "library" project TO YOUR WORKSPACE Right click on library project Properties -> Android -> Check "Target Name" 4.x (any, API level 14,15 or 16). Bottom check "Is library". In properties, go to "Java Build Path", tab "Libraries" And find "android-support-v4.jar" normally in "Android Dependencies". Ok and Close Properties. Right click on library project Android Tools -> Fix Project Properties in Menu Project -> Clean... and select to clean the "Library" Project.

В этом месте ваш проект & quot; библиотека & quot; должно быть сделано (без ошибок)

Create or import your own project. Example "MyProject" In properties, go to "Java Build Path", tab "Libraries" And find "android-support-v4.jar" normally in "Android Dependencies". Now go to "Projects" Tab. Add... and select "library" project. Now in properties go to Android -> Check "Target Name" 4.x (any, API level 14,15 or 16). IMPORTANT: Must to be the same of "library" project. Bottom "Is Library" must to be UNCHECKED and in this place press Add... And select "library" project. Ok and Close properties. Right click on "MyProject" project Android Tools -> Fix Project Properties in Menu Project -> Clean... and select to clean the "MyProject" Project.

Уже ваш проект должен быть выполнен. Если ошибка не устранена, перезапустите Eclipse.

4

глядит следующим образом:

Import library project Right click on library project Properties -> Android -> Set Project Build Target (insure library and primary project are the same) Right click on library project Android Tools -> Fix Project Properties Select the library project then Project -> Clean... Select primary project then Project -> Clean...

Это должно исправить все, что вас беспокоит.

Спасибо за быстрый ответ. К сожалению, этот прием не помог устранить ошибку. Ten_Ten_Steve
16

ссылка на проект ActionBarSherlock должна находиться в разделе «Свойства библиотеки Android» для проекта, в то время как я добавлял его в «Библиотеки пути сборки».

этот ответ спас меня от боли

Похожие вопросы