FileObserver выдает Throwable на одном из моих устройств

У меня есть 2 разных устройства, на которых я тестирую свое приложение. Один из них имеет Android 4.0.3, а другой 4.3.

Обычно мне все равно, какой я использую, но так как мне нужно загрузить файлы в Dropbox и загрузить их на другое устройство, я начал использовать оба. Дело в том, что с Jelly Bean код работает отлично и файл загружается. Это не происходит так же, как с IceCream: fileObserver выдает теоретически необработанное исключение, и я говорю теоретически, потому что оператор, в котором происходит сбой, находится внутри блока try-catch.

Итак, код, в котором происходит сбой приложения на этом устройстве Icecream, выглядит следующим образом:

                try { 
                    /* Some statements and stuff to do
                    ...................
                    .....................
                    .........................
                    */


                    File file = new File(mEncryptedDirectoryPath + "/" + fileName);
                    if (CheckConnection.isConnected(getApplicationContext())) {
                        UploadFileToDropbox upload = new UploadFileToDropbox(MainActivity.mDBApi,
                                file, Constants.DROPBOX_DIR + "/" + fileName);
                        upload.execute();
                    }
                    else {
                        // other stuff
                    }
                }
                catch (Exception e){
                    StringWriter errors = new StringWriter();
                    e.printStackTrace(new PrintWriter(errors));
                    Log.i("Exception", errors.toString());
                }

Вылетает только по вызову:

UploadFileToDropbox upload = new UploadFileToDropbox(MainActivity.mDBApi,
                                file, Constants.DROPBOX_DIR + "/" + fileName);

При отладке он даже не попадает внутрь конструктора UploadFileToDropbox. Этот класс, кстати, реализован в AsynTask, а fileObserver существует в службе, работающей в главном потоке.

Есть идеи, в чем проблема?

заранее спасибо

ОБНОВИТЬ

Трассировки стека:

11-01 21:23:40.310: I/Exception(32199): java.lang.ExceptionInInitializerError
11-01 21:23:40.310: I/Exception(32199):     at com.example.example.SecureSharing$1.onEvent(SecureSharing.java:136)
11-01 21:23:40.310: I/Exception(32199):     at  android.os.FileObserver$ObserverThread.onEvent(FileObserver.java:125)
11-01 21:23:40.310: I/Exception(32199):     at android.os.FileObserver$ObserverThread.observe(Native Method)
11-01 21:23:40.310: I/Exception(32199):     at android.os.FileObserver$ObserverThread.run(FileObserver.java:88)
11-01 21:23:40.310: I/Exception(32199): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
11-01 21:23:40.310: I/Exception(32199):     at android.os.Handler.<init>(Handler.java:121)
 11-01 21:23:40.310: I/Exception(32199):    at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:607)
11-01 21:23:40.310: I/Exception(32199):     at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:607)
11-01 21:23:40.310: I/Exception(32199):     at android.os.AsyncTask.<clinit>(AsyncTask.java:190)
11-01 21:23:40.310: I/Exception(32199):     ... 4 more

0 ответов

Другие вопросы по тегам