Форум программистов, компьютерный форум CyberForum.ru

Ошибка при загрузке темы - Android

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
semiromid
 Аватар для semiromid
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 177
03.09.2014, 17:17     Ошибка при загрузке темы #1
Здравствуйте! Я хотел поменять тему , что в последствии и сделал , но немного не таким образом как я ранее хотел. В итоге остался вопрос , почему у меня не меняется тема так, как она должна меняться ?

Вот варианты которые я пробовал применить, для того что бы поменять тему в программе :

1.Вариант "Вставляем ручками" . Открываем файл - Manifest
И в данном случаи вместо "AppTheme" в этой строке - "android:theme="@style/AppTheme" >" вставляем другую тему . Например: "Theme.NoTitleBar.FullScreen" . Это будет выглядеть так - "android:theme="@style/Theme.NoTitleBar.FullScreen" > .
Вот код оригинала :
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.progect20"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
 
    <application
        android:allowBackup="true"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            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>
Меняем строку:

Вариант 1.1
"android:theme="@style/Theme.NoTitleBar.FullScreen"


выдает ошибку - Description Resource Path Location Typeerror: Error: No resource found that matches the given name (at 'theme' with value '@style/Theme.NoTitleBar.FullScreen'). AndroidManifest.xml /Progect20 line 11 Android AAPT Problem
Вариант 1.2
"android:theme="@android:style/Theme.NoTitleBar.FullScreen"

выдает ошибку - Description Resource Path Location Typeerror: Error: No resource found that matches the given name (at 'theme' with value '@android:style/Theme.NoTitleBar.FullScreen'). AndroidManifest.xml /Progect20 line 11 Android AAPT Problem
Как я понял , ошибка связанна с тем что компилятор не находит в ресурсах данную тему.


Или можно сделать тоже самое , но только с помощь таблицы, в дальнейшем избежав ошибок :

Кликните здесь для просмотра всего текста






После того как я якобы установил новую тему , пробую ее запускать на эмуляторе , и при запуске программы она вылетает с ошибкой " приложение остановлено" .

А вот лог Errors "виртуальной машины" в Eclipse:
Кликните здесь для просмотра всего текста
09-03 13:03:39.245: E/Trace(786): error opening trace file: No such file or directory (2)
09-03 13:03:39.595: E/AndroidRuntime(786): FATAL EXCEPTION: main
09-03 13:03:39.595: E/AndroidRuntime(786): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.progect20/com.example.progect20.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
09-03 13:03:39.595: E/AndroidRuntime(786): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
09-03 13:03:39.595: E/AndroidRuntime(786): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
09-03 13:03:39.595: E/AndroidRuntime(786): at android.app.ActivityThread.access$600(ActivityThread.java:141)
09-03 13:03:39.595: E/AndroidRuntime(786): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
09-03 13:03:39.595: E/AndroidRuntime(786): at android.os.Handler.dispatchMessage(Handler.java:99)
09-03 13:03:39.595: E/AndroidRuntime(786): at android.os.Looper.loop(Looper.java:137)
09-03 13:03:39.595: E/AndroidRuntime(786): at android.app.ActivityThread.main(ActivityThread.java:5041)
09-03 13:03:39.595: E/AndroidRuntime(786): at java.lang.reflect.Method.invokeNative(Native Method)
09-03 13:03:39.595: E/AndroidRuntime(786): at java.lang.reflect.Method.invoke(Method.java:511)
09-03 13:03:39.595: E/AndroidRuntime(786): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-03 13:03:39.595: E/AndroidRuntime(786): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-03 13:03:39.595: E/AndroidRuntime(786): at dalvik.system.NativeStart.main(Native Method)
09-03 13:03:39.595: E/AndroidRuntime(786): Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
09-03 13:03:39.595: E/AndroidRuntime(786): at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:110)
09-03 13:03:39.595: E/AndroidRuntime(786): at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57)
09-03 13:03:39.595: E/AndroidRuntime(786): at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:99)
09-03 13:03:39.595: E/AndroidRuntime(786): at com.example.progect20.MainActivity.onCreate(MainActivity.java:14)
09-03 13:03:39.595: E/AndroidRuntime(786): at android.app.Activity.performCreate(Activity.java:5104)
09-03 13:03:39.595: E/AndroidRuntime(786): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
09-03 13:03:39.595: E/AndroidRuntime(786): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
09-03 13:03:39.595: E/AndroidRuntime(786): ... 11 more



Судя по логу , тут нам говорят что нужно использовать темы связанные с AppCompat ну или наследовать от AppCompat компонента или подобные темы .

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.


Так вот , почему у меня выскакивает эта ошибка ? Почему именно с взаимодействием AppCompat я должен использовать темы? Почему нельзя их просто поставить , стандартным образом?


Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
 Аватар для Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
03.09.2014, 18:35     Ошибка при загрузке темы #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от semiromid Посмотреть сообщение
Это будет выглядеть так - "android:theme="@style/Theme.NoTitleBar.FullScreen" > .
а должно вот так:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
Добавлено через 54 секунды
Цитата Сообщение от semiromid Посмотреть сообщение
Theme.AppCompat
Это тему нужно устанавливать когда используется ActionBarActivity.
semiromid
 Аватар для semiromid
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 177
03.09.2014, 19:13  [ТС]     Ошибка при загрузке темы #3
Netscape, а как его не использовать ActionBarActivity ? То есть отключить? Я думал что он в темах Theme.AppCompat...... прописан , и для того что бы его не было , нужно поменять тему.

Добавлено через 18 минут
Theme.AppCompat - эти темы включают в себя ActionBarActivity. Но вопрос в том , из-за чего происходят ошибки , когда я пытаюсь менять стандартным образом темы . Можете на видео посмотреть , я его выложил в этом посте.
Netscape
 Аватар для Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
03.09.2014, 19:25     Ошибка при загрузке темы #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от semiromid Посмотреть сообщение
Theme.AppCompat - эти темы включают в себя ActionBarActivity
не.
ActionBarActivity должен использовать темы из Theme.AppCompat.
если что-то не нравиться - есть еще Activity и FragmentActivity.
semiromid
 Аватар для semiromid
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 177
03.09.2014, 21:13  [ТС]     Ошибка при загрузке темы #5
Netscape, То есть только программное отключение ActionBarActivity поможет стандартным образом установить другие темы (Например "Theme.NoTitleBar.FullScreen" )? Или как его отключить не меняя тему?

Добавлено через 15 минут
Спасибо. Понял в чём проблема. Покушаю ,посмотрю новости и отпишусь.

Добавлено через 1 час 24 минуты
И так.
public class MainActivity extends ActionBarActivity
Предусматривает использование тем с *AppCompat.... Если использовать другие темы , будет ошибка. Что бы убрать бар , можно наследовать эту тему.
ActionBarActivity - класс создается в проектах которые поддерживают устаревшие АРI.
------------------------------------------------------------------

public class MainActivity extends Activity - класс создается в проектах которые поддерживают более современные АРI. И соответственно можно ставить стандартным образом и другие темы , не только *AppCompat....
Netscape
 Аватар для Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
03.09.2014, 21:35     Ошибка при загрузке темы #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от semiromid Посмотреть сообщение
public class MainActivity extends Activity - класс создается в проектах которые поддерживают более современные АРI.
не совсем. это для любой версии АРI, хоть для 1.
semiromid
 Аватар для semiromid
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 177
03.09.2014, 22:26  [ТС]     Ошибка при загрузке темы #7
Netscape, Немного не правильно изложил я. Netscape Спасибо за поправку .
public class MainActivity extends Activity - класс создается в проектах которые поддерживают все API. Но, поддержка устройств, ограничена только более новыми версиями ОС.
public class MainActivity extends ActionBarActivity - класс создается в проектах которые поддерживают устаревшие АРI. И поддержка устройств не ограниченна , версиями ОС.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2014, 23:29     Ошибка при загрузке темы
Еще ссылки по теме:

Android Смена темы ActionBar при нажатии на кнопку
Android Изменение ссылок на файлы при загрузке HTML страницы
Android Как при смене темы менять стили кнопок?
Скачать файл при загрузке Android
Предотвратить выключение программы при загрузке и парсинге сайтов средствами Jsoup Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Netscape
 Аватар для Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
03.09.2014, 23:29     Ошибка при загрузке темы #8
Собственно, ActionBarActivity затевалась только ради того, что бы портировать ActionBar на версии ниже 3.0.
Для обратной совместимости также были добавлены порты тем в AppCompat.
Тема Theme.NoTitleBar.FullScreen устаревшая.

Спрятать ActionBar можно так:
https://gist.github.com/kerukerupappa/6159846

А вот так развернуть приложения на фуллскрин для всех версий андроида:
https://gist.github.com/chrisbanes/73de18faffca571f7292
Yandex
Объявления
03.09.2014, 23:29     Ошибка при загрузке темы
Ответ Создать тему
Опции темы

Текущее время: 15:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru