Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
-
Alibard
- Сообщения: 70
- Зарегистрирован: 20 янв 2015, 19:48
Сообщение
Alibard » 02 июн 2015, 13:39
И снова я. При возврате на главное активити после нескольких повторений происходит крит программьі, в чем трабла я не могу понять.
Вот логи ошибки
Код: Выделить всё
06-02 13:25:40.383: E/AndroidRuntime(25908): FATAL EXCEPTION: main
06-02 13:25:40.383: E/AndroidRuntime(25908): java.lang.RuntimeException: Unable to resume activity {com.example.bomba/com.example.bomba.MainActivity}: java.lang.NullPointerException
06-02 13:25:40.383: E/AndroidRuntime(25908): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2823)
06-02 13:25:40.383: E/AndroidRuntime(25908): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2862)
06-02 13:25:40.383: E/AndroidRuntime(25908): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1288)
06-02 13:25:40.383: E/AndroidRuntime(25908): at android.os.Handler.dispatchMessage(Handler.java:99)
06-02 13:25:40.383: E/AndroidRuntime(25908): at android.os.Looper.loop(Looper.java:156)
06-02 13:25:40.383: E/AndroidRuntime(25908): at android.app.ActivityThread.main(ActivityThread.java:4987)
06-02 13:25:40.383: E/AndroidRuntime(25908): at java.lang.reflect.Method.invokeNative(Native Method)
06-02 13:25:40.383: E/AndroidRuntime(25908): at java.lang.reflect.Method.invoke(Method.java:511)
06-02 13:25:40.383: E/AndroidRuntime(25908): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-02 13:25:40.383: E/AndroidRuntime(25908): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-02 13:25:40.383: E/AndroidRuntime(25908): at dalvik.system.NativeStart.main(Native Method)
06-02 13:25:40.383: E/AndroidRuntime(25908): Caused by: java.lang.NullPointerException
06-02 13:25:40.383: E/AndroidRuntime(25908): at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:374)
06-02 13:25:40.383: E/AndroidRuntime(25908): at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:369)
06-02 13:25:40.383: E/AndroidRuntime(25908): at com.vk.sdk.VKAccessToken.tokenFromSharedPreferences(VKAccessToken.java:199)
06-02 13:25:40.383: E/AndroidRuntime(25908): at com.vk.sdk.VKSdk.wakeUpSession(VKSdk.java:398)
06-02 13:25:40.383: E/AndroidRuntime(25908): at com.vk.sdk.VKSdk.wakeUpSession(VKSdk.java:389)
06-02 13:25:40.383: E/AndroidRuntime(25908): at com.example.bomba.MainActivity.onResume(MainActivity.java:177)
06-02 13:25:40.383: E/AndroidRuntime(25908): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1236)
06-02 13:25:40.383: E/AndroidRuntime(25908): at android.app.Activity.performResume(Activity.java:4620)
06-02 13:25:40.383: E/AndroidRuntime(25908): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2807)
Вот код реализации перехода на радительское активити
Код: Выделить всё
public void onCreate(Bundle savedInstanceState) {
....................
...................
bar.setDisplayHomeAsUpEnabled(true);
......................
...................
}
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
switch (id) {
case android.R.id.home:
this.finish();
break;
}
return super.onOptionsItemSelected(item);
}
Кто знает в чем может бьіть мой косяк?
-
klblk
- Сообщения: 1097
- Зарегистрирован: 18 окт 2012, 11:17
- Откуда: г. Красноярск
Сообщение
klblk » 02 июн 2015, 13:46
at com.example.bomba.MainActivity.onResume(MainActivity.java:177) <-
-
Alibard
- Сообщения: 70
- Зарегистрирован: 20 янв 2015, 19:48
Сообщение
Alibard » 02 июн 2015, 13:48
klblk писал(а):at com.example.bomba.MainActivity.onResume(MainActivity.java:177) <-
И? ето типа ошибка в 177 строчке?
-
Alibard
- Сообщения: 70
- Зарегистрирован: 20 янв 2015, 19:48
Сообщение
Alibard » 02 июн 2015, 13:57
Да креш бьіл из за ифа в том месте
Код: Выделить всё
protected void onResume() {
super.onResume();
Log.d(LOG_TAG, "resum");
if (VKSdk.wakeUpSession()) {
Log.d(LOG_TAG, "avtorizovan");
btnautor.setText("Мій профіль");
}
else {
Log.d(LOG_TAG, "ne avtorizovan");
btnautor.setText("Авторизація");
}
}
Как правильно организовать код чтоб функциона остался тот же а вот краш програми ищез?
-
rezak90
- Сообщения: 3422
- Зарегистрирован: 26 июн 2012, 13:22
- Откуда: UA
-
Контактная информация:
Сообщение
rezak90 » 02 июн 2015, 13:58
klblk писал(а):at com.example.bomba.MainActivity.onResume(MainActivity.java:177) <-
exactly
R.id.team
Политика на форуме запрещена
-
Alibard
- Сообщения: 70
- Зарегистрирован: 20 янв 2015, 19:48
Сообщение
Alibard » 02 июн 2015, 14:02
С местом ошибки розобрались =) спасибо. А как зделать чтоб функционал остался, если все закоментить или удалить то не критует, но мне надо что оно меняло имя кнопки...
-
rezak90
- Сообщения: 3422
- Зарегистрирован: 26 июн 2012, 13:22
- Откуда: UA
-
Контактная информация:
Сообщение
rezak90 » 02 июн 2015, 14:07
Alibard писал(а):С местом ошибки розобрались =) спасибо. А как зделать чтоб функционал остался, если все закоментить или удалить то не критует, но мне надо что оно меняло имя кнопки...
You should check objects for null.
R.id.team
Политика на форуме запрещена
-
klblk
- Сообщения: 1097
- Зарегистрирован: 18 окт 2012, 11:17
- Откуда: г. Красноярск
Сообщение
klblk » 02 июн 2015, 14:11
VKSdk.wakeUpSession() -> VKSdk.wakeUpSession(this)
попробуй
-
Alibard
- Сообщения: 70
- Зарегистрирован: 20 янв 2015, 19:48
Сообщение
Alibard » 02 июн 2015, 14:13
Can you show example? Or it something such "if(4toto == null){ delaem to to}
-
Alibard
- Сообщения: 70
- Зарегистрирован: 20 янв 2015, 19:48
Сообщение
Alibard » 02 июн 2015, 14:18
klblk писал(а):VKSdk.wakeUpSession() -> VKSdk.wakeUpSession(this)
попробуй
СПАСИБО ПОМОГЛО! Слушай можеш обяснить новечку почему оно спиравило ошибку? и что визивало посилание на нулевую точку?
-
klblk
- Сообщения: 1097
- Зарегистрирован: 18 окт 2012, 11:17
- Откуда: г. Красноярск
Сообщение
klblk » 02 июн 2015, 14:24
Потому что контекст который использовался VKSdk по умолчанию почему-то стал null (почему не знаю, т.к. с SDK не работал, и исходники особо не смотрел). В качестве альтернативы использовать функцию, где контекст мы передаем вручную (в данном случае текущую Activity - this), тем более как можно судить из лога ошибки он используется для получения значения из SharedPreferences, а для этого любой контекст сгодится.
-
rezak90
- Сообщения: 3422
- Зарегистрирован: 26 июн 2012, 13:22
- Откуда: UA
-
Контактная информация:
Сообщение
rezak90 » 02 июн 2015, 14:35
потому что нужно использовать контекст апликейшена, он null не будет в лайф цикле активити
R.id.team
Политика на форуме запрещена