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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
semiromid
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 177
#1

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

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


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

Ошибка при отображении темы - Программирование Android
Здравствуйте! Правильно ли я понимаю , что эта тема &quot;Theme_Base_AppCompat_Dialog_Light_FixedSize&quot; для API14 ++, и как это можно узнать?...

Ошибка при загрузке приложения на Google Play - Программирование Android
Здравствуйте. При попытке загрузки приложения на Google Play возникает ошибка: В AndroidManifest.xml прописано: &lt;application...

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

Как при смене темы менять стили кнопок? - Программирование Android
В приложении используются 2 вида кнопок. Это разные кнопки как по цвету, так и по другим свойствам. Свойства этих 2-х видов кнопок...

Скачать файл при загрузке - Программирование Android
Очень нужна помощь! В программирование на java я 0. Но очень нужно приложение которое при открытие будет скачивать на sd карту файл из...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 177
03.09.2014, 19:13  [ТС] #3
Netscape, а как его не использовать ActionBarActivity ? То есть отключить? Я думал что он в темах Theme.AppCompat...... прописан , и для того что бы его не было , нужно поменять тему.

Добавлено через 18 минут
Theme.AppCompat - эти темы включают в себя ActionBarActivity. Но вопрос в том , из-за чего происходят ошибки , когда я пытаюсь менять стандартным образом темы . Можете на видео посмотреть , я его выложил в этом посте.
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
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
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
03.09.2014, 21:35 #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от semiromid Посмотреть сообщение
public class MainActivity extends Activity - класс создается в проектах которые поддерживают более современные АРI.
не совсем. это для любой версии АРI, хоть для 1.
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. И поддержка устройств не ограниченна , версиями ОС.
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2014, 23:29
Привет! Вот еще темы с ответами:

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

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

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

Изменение ссылок на файлы при загрузке HTML страницы - Программирование Android
Добрый день, может кто имел опыт подмены ссылок при загрузке страницы в WebView, если перефразировать то нужно при загрузке страницы, в...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.09.2014, 23:29
Ответ Создать тему
Опции темы

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