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

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

Войти
Регистрация
Восстановить пароль
 
 
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
#1

The application may be doing too much work on its main thread - Программирование Android

24.12.2015, 16:50. Просмотров 1085. Ответов 23
Метки нет (Все метки)

Ну елки палки, это что еще такое ?
В приложении запускаю камеру и ловлю результат
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
PhotoObject current_photoObj ; // мой класс для работы с файлом фотки
current_photoObj = new PhotoObject();
 
  protected void camera_start(){
        Intent takePictureIntent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
        takePictureIntent.putExtra( MediaStore.EXTRA_OUTPUT, current_photoObj.getFileForCameraIntent() );
        startActivityForResult(takePictureIntent, CAMERA_RESULT);
    }
 
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == CAMERA_RESULT) {
 
            if (resultCode == RESULT_OK) {
 
                if( current_photoObj.resize() ){
 
                    Toast toast = Toast.makeText(getApplicationContext(),"Фотография прикреплена", Toast.LENGTH_SHORT);
                    toast.show();
 
                }else{
 
                    Toast toast = Toast.makeText(getApplicationContext(),
                            "Не удалось преобразовать изображение", Toast.LENGTH_SHORT);
                    toast.show();
 
                    current_photoObj.delete();
                    current_photoObj = null;
 
                }
            }else{
                current_photoObj.delete();
                current_photoObj = null;
            }
        }
    }
И далее...
The application may be doing too much work on its main thread
Что-то типо "Skipped 40+ frames", не успел копирнуть

12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: FATAL EXCEPTION: main
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: Process: com.example.pr, PID: 14752
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.example.pr/com.example.pr.EvacuationAddActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.example.pr.data.PhotoObject.resize()' on a null object reference
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:3680)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.app.ActivityThread.handleSendResult(ActivityThread.java:3723)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.app.ActivityThread.access$1300(ActivityThread.java:156)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1400)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.os.Looper.loop(Looper.java:211)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5389)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.example.pr.data.PhotoObject.resize()' on a null object reference
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at com.example.pr.EvacuationAddActivity.onActivityResult(EvacuationAddActivity.java:338)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.app.Activity.dispatchActivityResult(Activity.java:6192)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:3676)
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.app.ActivityThread.handleSendResult(ActivityThread.java:3723)*
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.app.ActivityThread.access$1300(ActivityThread.java:156)*
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1400)*
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)*
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.os.Looper.loop(Looper.java:211)*
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5389)*
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)*
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)*
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)*
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)*
Возможно тут описана похожая проблема, но в eng я слабоват для такого.
Проблема возникает редко, в большинстве случаев все работает.
Подскажите плиз из-за чего возникает проблема и как ее исправить ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2015, 16:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос The application may be doing too much work on its main thread (Программирование Android):

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 at work.WorkClass.main(WorkClass.java:16) - Java SE
Здравствуйте. Объясните, что не так. package test; public class Test { public static void main(String args) { String...

Exception in thread "main" java.lang.NullPointerException at Main.main - Java SE
Извините, перемещю в нужный раздел как только найду как это сделать Задание: Создать масив объектов класса, определить значение полей...

Почему когда фоновый thread "спит" я не могу убить main thread ? - Java
Привет! Делаю гуй на swing'e, для реализации долговременной задачи создал второй поток. В этом втором потоке вызывается...

Ошибка Exception in thread "JavaFX Application Thread" java.lang.NullPointerException - JavaFX
Вот что хочу сделать HBox hbox = new HBox(5); hbox.setAlignment(Pos.CENTER); scene.setRoot(hbox); Circle c = new Circle; ...

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException при создании новой Tab или окна - JavaFX
Доброго времени суток, уважаемые форумчане и форумчанки! Не бросаю попытки разобраться с JavaFX на примере реализации WebBrowser. ...

Ошибка Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at pr4.RSA.main(RSA.java:44) - Java SE
package pr4; import java.math.BigInteger; import java.security.SecureRandom; public class RSA { private final...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
24.12.2015, 17:21 #2
Цитата Сообщение от gradus Посмотреть сообщение
12-24 15:59:05.447 14752-14752/com.example.pr E/AndroidRuntime: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.example.pr/com.example.pr.EvacuationAddActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.example.pr.data.PhotoObject.resize()' on a null object reference
У Вас NullPointerExeption
0
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
24.12.2015, 19:08  [ТС] #3
YuraAAA, спасибо за диагноз но из-за чего это происходит ?
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
25.12.2015, 08:04 #4
строка
current_photoObj = new PhotoObject();
выполняется?
в каком она методе
0
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
25.12.2015, 10:04  [ТС] #5
Valakin, она по любому должна выполняться.
В методе активити
Java
1
protected void onCreate(Bundle savedInstanceState)
стоит перехват события нажатия на кнопку, где происходит запуск камеры. Перед методом запуска камеры срабатывает эта самая строка
Java
1
current_photoObj = new PhotoObject();
Если бы не сработала, то ошибка бы произошла при вызове интента камеры, т.к. вызываю метод getFileForCameraIntent() объекта current_photoObj
Java
1
takePictureIntent.putExtra( MediaStore.EXTRA_OUTPUT, current_photoObj.getFileForCameraIntent() );
Добавлено через 7 минут
да, забыл. Перед крашем в лог писалось "Shutting down VM"
0
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
25.12.2015, 11:22 #6
Цитата Сообщение от gradus Посмотреть сообщение
current_photoObj.resize()
тут null видимо
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
25.12.2015, 11:28 #7
Цитата Сообщение от gradus Посмотреть сообщение
on a null object reference
разве от не про объект пишет
0
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
25.12.2015, 11:30 #8
Valakin, про объект. Попытка вызвать метод resize у объекта null.
0
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
25.12.2015, 12:47  [ТС] #9
YuraAAA, только вот как это может произойти ?
Может ли это повлиять на то что объявление
Java
1
PhotoObject current_photoObj ;
а не
Java
1
public PhotoObject current_photoObj ;
Возможно ли что при использование камеры, в это время в активити очищаются переменные сборщиком ?
И еще в манифете для этой активити у меня прописано android:screenOrientation="portrait", может это как-то еще повлияло ?
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
25.12.2015, 13:49 #10
gradus, ну так поставьте маяк и посмотрите current_photoObj у вас null или нет...
0
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
25.12.2015, 14:02  [ТС] #11
Armagedo, так это происходит очень редко. Если бы я знал как поймать этот случай...
Более 100 фоток понаделал, из них раза 2-3 такое происходило.
Да и так понятно, что null. И условие влепил, но вот все же почему становиться null...
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
25.12.2015, 14:17 #12
gradus, ну видимо бывает такое, что результат приходит не RESULT_OK, а там у вас current_photoObj = null; и следующее фото уже вызывает NPE. Зачем вообще при ошибке все чистить?
0
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
25.12.2015, 15:16 #13
gradus, Spelcrawler правильно сказал. Создавайте photoObject в camera_start методе как вариант
0
gradus
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 41
25.12.2015, 15:28  [ТС] #14
Spelcrawler, так если не RESULT_OK, то камера по идеи должна закрыться или может быть, что вызвался метод onActivityResult и камера продолжает работать ?
current_photoObj = null; сбрасываю для очистки и правильности содержания свойств в зависимости от событий, зачем держать там объект если не будет использоваться, отдам лучше память мусорщику

Добавлено через 3 минуты
YuraAAA, по нажатию на кнопку, у меня вызывается метод camera_used();
Java
1
2
3
4
5
6
protected void camera_used(){
      if(photos.size() < max_photo_count){
            current_photoObj = new PhotoObject();
            camera_start();
       }
    }
Разве так не правильно ?
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
25.12.2015, 16:35 #15
Цитата Сообщение от gradus Посмотреть сообщение
камера по идеи должна закрыться или может быть, что вызвался метод onActivityResult и камера продолжает работать ?
Из того кода что есть это не понятно.
Цитата Сообщение от gradus Посмотреть сообщение
Более 100 фоток понаделал, из них раза 2-3 такое происходило.
После этого сообщения подумал, что фотки делаются все на одном экране подряд.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2015, 16:35
Привет! Вот еще темы с ответами:

QObject::connect: No such slot QTextEdit::append("Work!") in ./simply/main.cpp:37 - C++ Qt
Доброго времени суток. Почему у меня коннект не создаётся. Я хочу по нажатию на кнопку, чтобы текст добавлялся в текстовое поле. А...

Ошибка Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 at program.main(program.java:25) - Java SE
Всем привет, только начал изучать java, помогите исправить ошибку в заголовке, и если не сложно, скажите, как можно уменьшить текст...

Exception in thread "main" java.lang.NullPointerException at JMS.JMSClient.main(JMSClient.java:15) - Java EE
Всем привет, ребят тут такое дело....уже сума схожу. Изучаю jms, хочу добиться соединения к ConnectionFactory. Снизу приведена...

Ошибка 'Exception in thread 'main' java.lang.NoClassDefFoundError: D:JProgaSymbolTest' - Java
Почему при выполнении файла SymbolTest.class выдается сообщение 'Exception in thread 'main' java.lang.NoClassDefFoundError:...


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

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

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