Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
106 / 106 / 1
Регистрация: 09.04.2012
Сообщений: 655
1

Не показывается AlertDialog

18.05.2013, 00:25. Показов 1637. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу при запуске проверить есть ли на устройстве Сервисы Google Play
Кликните здесь для просмотра всего текста
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public class MainActivity extends FragmentActivity {
          .....
 
         @Override
     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.main);
        
             if (checkPlayServices()) {                      // проверка на Сервисы  
                    myFragmentManager = getSupportFragmentManager();
                    mySupportMapFragment  = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
                    myMap = mySupportMapFragment.getMap();
                    myMap.setMyLocationEnabled(true); 
 
                    } else {                                            // если Сервисов нет 
                     showErrorDialog();                             // показываем диалог
                  }
         }
 
          private boolean checkPlayServices() {                        // сама проверка
 
          int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
          if (status != ConnectionResult.SUCCESS)  {
 
            if (GooglePlayServicesUtil.isUserRecoverableError(status)) {
                
             } 
            showErrorDialog();
          }
          return true;
        } 
 
        private void showErrorDialog() {         
         AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
         alertDialog.setCancelable(false);
         alertDialog.setTitle(getResources().getString(R.string.google_service_no));
         alertDialog.setMessage(getResources().getString(R.string.google_service_need));
         alertDialog.setIcon(android.R.drawable.ic_dialog_info);
         alertDialog.setPositiveButton("Google Play", new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog,int which) {
                  final String appName = "com.google.android.gms";
                  try {
                      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id="+appName)));
                  } catch (android.content.ActivityNotFoundException anfe) {
                  }
              }
          });
         alertDialog.setNegativeButton(getResources().getString(R.string.exit), new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int which) {
                    finish();
                }
           });  
          alertDialog.show();
        }
}


Если Сервисы в телефоне есть, всё работает, если их нет, приложение вылетает (на реальном устройстве). Логи показать не могу так как на эмуляторе Сервисов нет и приложение на эмуляторе крашиться в строке
Java
1
myMap.setMyLocationEnabled(true);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2013, 00:25
Ответы с готовыми решениями:

AlertDialog
ЗДравствуйте! Имеется простая игра. Когда ХП игрока == 0, я останавливаю игру и хочу показать...

TextView а AlertDialog
Здравствуйте! Вот столкнулся с такой проблемой, не могу Textview вывести в AlertDialog. Помогите...

Spinner в AlertDialog
Как Spinner в AlertDialog сделать? AlertDialog вызываю через нажатие fab. AlertDialog.Builder...

AlertDialog и RadioGroup
Всем привет. Создаю программу, в которой в открывшемся диалоговом окне происходит настройка...

19
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:29 2
ну так логи с реального устройства и покажите...
0
106 / 106 / 1
Регистрация: 09.04.2012
Сообщений: 655
18.05.2013, 00:31  [ТС] 3
А по делу глядя на код можете помочь?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:37 4
а у вас нет устройства?
0
106 / 106 / 1
Регистрация: 09.04.2012
Сообщений: 655
18.05.2013, 00:40  [ТС] 5
Есть. Я ж написал, что на реальном устройстве, если есть сервисы, работает всё как нужно, если их удалить, приложение вылетает

Добавлено через 59 секунд
Цитата Сообщение от V0v1k Посмотреть сообщение
ну так логи с реального устройства и покажите...
А где их там взять?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:41 6
а где вы берете с эмулятора?
0
106 / 106 / 1
Регистрация: 09.04.2012
Сообщений: 655
18.05.2013, 00:44  [ТС] 7
В LogCat
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:46 8
ну вот точно там же и для устройства.
0
106 / 106 / 1
Регистрация: 09.04.2012
Сообщений: 655
18.05.2013, 00:51  [ТС] 9
Не понимаю где
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:53 10
В LogCat
0
106 / 106 / 1
Регистрация: 09.04.2012
Сообщений: 655
18.05.2013, 00:55  [ТС] 11
Мне там указывает на строку
Java
1
myMap.setMyLocationEnabled(true);
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:57 12
вы же говорили что эмулятор там падает, а я про устройство спрашиваю...
0
106 / 106 / 1
Регистрация: 09.04.2012
Сообщений: 655
18.05.2013, 01:06  [ТС] 13
Цитата Сообщение от V0v1k Посмотреть сообщение
а я про устройство спрашиваю...
Я не понимаю о чём вы. Лог для реального устройства из Эклипса?
Или лог реального устройства из устройства?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 01:13 14
Лог для реального устройства из Эклипса.

Добавлено через 6 минут
кстати, сервисы можно установить на эмулятор
adb install com.google.android.gms-19032013.apk
adb install com.android.vending-19032013.apk
0
106 / 106 / 1
Регистрация: 09.04.2012
Сообщений: 655
19.05.2013, 00:37  [ТС] 15
Цитата Сообщение от V0v1k Посмотреть сообщение
Лог для реального устройства из Эклипса.
Он показывает на строку
Java
1
myMap.setMyLocationEnabled(true);
в ней null
0
0x5B4C322291BD52AE
96 / 96 / 0
Регистрация: 04.03.2013
Сообщений: 295
19.05.2013, 01:25 16
http://developer.android.com/r... tMap%28%29

Cкорее всего у тебя возникает NPE причины по ссылке выше.

Java
1
2
3
4
5
if (myMap == null) {
 // Google Play services is not available.
} else {
   myMap.setMyLocationEnabled(true); 
}
п.с. Способ определения какой-то странный
0
106 / 106 / 1
Регистрация: 09.04.2012
Сообщений: 655
23.05.2013, 11:25  [ТС] 17
Цитата Сообщение от c4sp3r Посмотреть сообщение
п.с. Способ определения какой-то странный
Способ определения чего?
0
8 / 8 / 0
Регистрация: 17.05.2012
Сообщений: 30
28.05.2013, 03:02 18
private boolean checkPlayServices
Ваша Функция Постоянно возврашает true
неважно есть ли или нету сервисов на телефоне
поетому и падает
0
106 / 106 / 1
Регистрация: 09.04.2012
Сообщений: 655
29.05.2013, 00:34  [ТС] 19
Цитата Сообщение от Gruzer Посмотреть сообщение
Ваша Функция Постоянно возврашает true
неважно есть ли или нету сервисов на телефоне
поетому и падает
По логам падает из-за того, что myMap null
0
8 / 8 / 0
Регистрация: 17.05.2012
Сообщений: 30
01.06.2013, 20:40 20
Диалог не тормозит функцию
после вызова диалога функция продолжает работать
вследствии чего и возрашается true

поетому и написал что функция постоянно возврашает true
есть или нету сервисов

можеш проверит
постав логи в функцию и посматри как они срабатывают и в какои очередности


вот самыи простои вариант

Java
1
2
3
4
5
6
7
8
9
10
 private boolean checkPlayServices() {                        // сама проверка
 
          int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
          if (status == ConnectionResult.SUCCESS)  {
                     return true;
           }
           
            showErrorDialog();
            return false;
        }
Добавлено через 10 минут
showErrorDialog(); забыл убрать

Java
1
2
3
4
5
6
7
8
private boolean checkPlayServices() {                        // сама проверка
 
          int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
          if (status == ConnectionResult.SUCCESS)  {
                     return true;
           }
            return false;
        }
0
01.06.2013, 20:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2013, 20:40
Помогаю со студенческими работами здесь

AlertDialog Error
Всем доброго времени суток! Изучал изготовление своего AlertDialog по учебнику и на одном из...

Закрытие AlertDialog
Здравствуйте. Такой вопрос. Допустим я вызвал диалог и после этого перевел приложение в паузу, то...

Не работает AlertDialog
Почему в данном случае не работает AlertDialog? public class MainActivity : Activity ...

Потоки и AlertDialog
Помогите, пожалуйста, бьюсь уже несколько дней. Создаю файловый менеджер. Это моя первая программа...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru