我正嘗試將文件上傳到Dropbox。我配置了清單文件,並編寫了下面的代碼。請幫助我瞭解我在這裏失蹤的內容。 活動的onclickDropboxUnlinkedException - 如果您尚未在會話上設置訪問令牌對,或者用戶已撤銷訪問
Intent uploadToDropbox = new Intent(this, SUploadDB2Dropbox.class);
startService(uploadToDropbox) ;
服務SUploadDB2Dropbox
private DropboxAPI<AndroidAuthSession> mDBApi;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
AppKeyPair appKeys = new AppKeyPair(God.DROPBOX_APP_KEY,
God.DROPBOX_APP_SECRET);
AndroidAuthSession session = new AndroidAuthSession(appKeys);
mDBApi = new DropboxAPI<AndroidAuthSession>(session);
mDBApi.getSession().startOAuth2Authentication(this);
UploadDB2DropBox upload2DropBox = new UploadDB2DropBox(this, mDBApi);
upload2DropBox.execute();
return super.onStartCommand(intent, flags, startId);
}
UploadDB2DropBox的AsyncTask
@Override
public String doInBackground(Object... params) {
File file = new File(context.getDatabasePath(God.TABLE_ACTIVATIONS)
+ ".db");
Log.d(God.TAG,
"Database path "
+ context.getDatabasePath(God.TABLE_ACTIVATIONS));
FileInputStream inputStream = null;
try {
String newFileName;
inputStream = new FileInputStream(file);
newFileName = "/" + God.TABLE_ACTIVATIONS
+ Calendar.getInstance().getTimeInMillis() + ".db";
Log.d(God.TAG, "File path " + file.getName() + " len "
+ inputStream.available());
Log.d(God.TAG, " New Filename " + newFileName);
Entry response = mDBApi.putFile(newFileName, inputStream,
file.length(), null, null);
Log.d(God.TAG, "Uploaded file is " + response.rev);
} catch (FileNotFoundException e) {
e.printStackTrace();
Log.e(God.TAG, "FileNotFoundException");
} catch (DropboxException e) {
e.printStackTrace();n
Log.e(God.TAG, "DropboxException");
} catch (IOException e) {
Log.e(God.TAG, "IOException");
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
Log.e(God.TAG, "IOException");
}
}
}
return null;
}
我得到一個Dropbox的例外。屏幕確實導航到保存框Allow user
屏幕(每次都可以)。
logcat的
02-23 11:44:19.435: D/AutoActivate(27289): Database path /data/data/com.swipex.autoactivate/databases/activations
02-23 11:44:19.436: D/AutoActivate(27289): File path activations.db len 8372224
02-23 11:44:19.546: D/AutoActivate(27289): New Filename /activations1424672059436.db
02-23 11:44:19.702: E/AutoActivate(27289): DropboxException
清單文件
<activity
android:name="com.dropbox.client2.android.AuthActivity"
android:configChanges="orientation|keyboard"
android:launchMode="singleTask" >
<intent-filter>
<data android:scheme="db-KEY_VALUE_HERE" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
我得到一個UnlinkException
DropboxUnlinkedException - 如果您沒有設置一個訪問令牌對上的會話,或者如果用戶已撤銷訪問權限。
我錯過了什麼?
爲了說明,您的** >> EXCEPTION_HERE **標記位於Log.e行上。它實際上是發生在那條線上,還是在它上面的一條線上? – Greg 2015-02-10 23:10:24
對不起,我會改正的,我看你在說什麼。 – Siddharth 2015-02-11 04:39:58
你指出'putFile'這一行,但是堆棧跟蹤似乎沒有提到這一點,甚至沒有提到你發佈的'UploadDB2DropBox'類。你確定這個例外來自這個代碼嗎?它看起來像這裏有關於此錯誤的另一個問題:http://stackoverflow.com/questions/11308260/chooseractivity-has-leaked-intentreceiver – Greg 2015-02-11 21:23:39