0

アプリをテストしている 2 つの異なるデバイスがあります。そのうちの 1 つは Android 4.0.3 で、もう 1 つは 4.3 です。

普段はどちらを使っても構いませんが、ファイルをドロップボックスにアップロードして他のデバイスにダウンロードする必要があるため、両方を使用するようになりました。問題は、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 はメイン スレッドで実行されている Service に存在します。

問題が何であるかについて何か考えはありますか?

前もって感謝します

アップデート

スタックトレース:

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
4

0 に答える 0