Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
semiromid
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 179
#1

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

03.09.2014, 17:17. Просмотров 3151. Ответов 7
Метки нет (Все метки)

Здравствуйте! Я хотел поменять тему , что в последствии и сделал , но немного не таким образом как я ранее хотел. В итоге остался вопрос , почему у меня не меняется тема так, как она должна меняться ?

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

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 я должен использовать темы? Почему нельзя их просто поставить , стандартным образом?


Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2014, 17:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка при загрузке темы (Программирование Android):

Ошибка при отображении темы
Здравствуйте! Правильно ли я понимаю , что эта тема...

Ошибка при загрузке приложения на Google Play
Здравствуйте. При попытке загрузки приложения на Google Play возникает ошибка:...

Смена темы ActionBar при нажатии на кнопку
Подскажите пожалуйста как можно изменить тему ActionBar, при нажатии на кнопку.

Как при смене темы менять стили кнопок?
В приложении используются 2 вида кнопок. Это разные кнопки как по цвету, так и...

Сбой при загрузке на android 4
Здравствуйте. Моя игра без проблем загружается на android 2.3 но на android 4+...

Скачать файл при загрузке
Очень нужна помощь! В программирование на java я 0. Но очень нужно приложение...

7
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
03.09.2014, 18:35 #2
Лучший ответ Сообщение было отмечено semiromid как решение

Решение

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

Добавлено через 18 минут
Theme.AppCompat - эти темы включают в себя ActionBarActivity. Но вопрос в том , из-за чего происходят ошибки , когда я пытаюсь менять стандартным образом темы . Можете на видео посмотреть , я его выложил в этом посте.
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
03.09.2014, 19:25 #4
Лучший ответ Сообщение было отмечено semiromid как решение

Решение

Цитата Сообщение от semiromid Посмотреть сообщение
Theme.AppCompat - эти темы включают в себя ActionBarActivity
не.
ActionBarActivity должен использовать темы из Theme.AppCompat.
если что-то не нравиться - есть еще Activity и FragmentActivity.
1
semiromid
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 179
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....
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
03.09.2014, 21:35 #6
Лучший ответ Сообщение было отмечено semiromid как решение

Решение

Цитата Сообщение от semiromid Посмотреть сообщение
public class MainActivity extends Activity - класс создается в проектах которые поддерживают более современные АРI.
не совсем. это для любой версии АРI, хоть для 1.
1
semiromid
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 179
03.09.2014, 22:26  [ТС] #7
Netscape, Немного не правильно изложил я. Netscape Спасибо за поправку .
public class MainActivity extends Activity - класс создается в проектах которые поддерживают все API. Но, поддержка устройств, ограничена только более новыми версиями ОС.
public class MainActivity extends ActionBarActivity - класс создается в проектах которые поддерживают устаревшие АРI. И поддержка устройств не ограниченна , версиями ОС.
0
Netscape
374 / 361 / 52
Регистрация: 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
1
03.09.2014, 23:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2014, 23:29
Привет! Вот еще темы с решениями:

Автофокус при загрузке страницы
Всем привет! Подскажите как убрать автофокусировку на странице приложения при...

Вылетает приложении при загрузке шрифта
Хочу присвоить тексту свой шрифт, например, кладу в assets/fonts/f300.ttf...

Ориентация экрана при загрузке данных
Добрый день! Приложение запрашивает HTML страницу которая загружется в...

Что за пароль выскакивает при загрузке эмулятора
Ничего не понимаю, эмулятор загружается и запрашивает какой-то пароль. Люди...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru