私は今これで6時間ほど戦っています。私はDropboxの「チュートリアル」(非常に貧弱であるため、それと呼べる場合)に従い、DBRouletteの例で遊んで、アプリを機能させるためにたくさんのことをしました。
私のアプリは問題なく認証できます。しかし、チュートリアルが行っていることを正確に実行しているにもかかわらず、何もアップロードできません。
これは私が持っているコードの小さな断片です(これは、作成したメモを電話自体に保存してから、Dropboxにアップロードするためのものです):
saveBtn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
try
{
//Create the directory if it doesn't exist. If it does exist the next two line won't do anything.
File dropNotesDir = new File(Environment.getExternalStorageDirectory() + "/documents/AppData/Dropnotes/");
dropNotesDir.mkdirs();
//-----------------------------------------------------------------------------------------------
String wholeNoteString = noteBody.getText().toString();
//Now we create the title of the txt file. It will be the first line of the whole note. The name will get truncated to 32 characters
//if it's too long.
String noteTitle;
if(wholeNoteString.indexOf("\n") >= 0) //New line character found.
{
noteTitle = wholeNoteString.substring(0, wholeNoteString.indexOf("\n"));
if(noteTitle.length() >= 32)
{
noteTitle = wholeNoteString.substring(0, 32);
}
}
else
{
if(wholeNoteString.length() >= 32)
{
noteTitle = wholeNoteString.substring(0, 32);
}else
{
noteTitle = wholeNoteString;
}
}
if(extras.getString("file-mode").equals("modify"))
{
//We will need to delete the existing file if it does exist to save the new one.
File existing = new File(Environment.getExternalStorageDirectory() + "/documents/AppData/Dropnotes/" + extras.getString("noteTitle"));
existing.delete();
}
File newNote = new File(Environment.getExternalStorageDirectory() + "/documents/AppData/Dropnotes/" + noteTitle + ".txt");
PrintWriter newNoteWriter = new PrintWriter(new FileOutputStream(newNote));
newNoteWriter.print(noteBody.getText().toString());
newNoteWriter.close();
//TRYING TO UPLOAD TO DROPBOX HERE
File fileToUpload = new File(Environment.getExternalStorageDirectory() + "/documents/AppData/Dropnotes/" + noteTitle + ".txt");
FileInputStream file2Uis = new FileInputStream(fileToUpload);
Entry newEntry = mDBApi.putFile("/" + noteTitle + ".txt", file2Uis, fileToUpload.length(), null, null);
//END OF TRYING TO UPLOAD TO DROPBOX HERE
Toast.makeText(view.getContext(), "Saved successfully", Toast.LENGTH_SHORT).show();
finish();
} catch (FileNotFoundException e)
{
Toast.makeText(view.getContext(), "File not found: " + e.getMessage(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
} catch(Exception e)
{
Toast.makeText(view.getContext(), "Some bizarre exception occured: " + e.getClass().toString(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
});
NetworkOnMainThreadExceptionが発生しますが、その理由はわかりません。ここで「ファイルのアップロード」というタイトルのセクションをたどろうとしています。彼らのスニペットについて私を困惑させているのは、彼らが私が投げられている例外を捕まえようとさえしていないということです...
何か助けはありますか?私は本当に来週の金曜日にこれを機能させる必要があります。