アプリをテストしている 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