我有一個問題,爲Android設置dropbox-sdk。當開始執行代碼時,我得到以下"Unfortunately xxx has stopped"
。Dropbox SDK設置/身份驗證問題。
起初我以爲問題可能出現在清單文件中,因爲通常當我沒有正確設置權限時出現錯誤。但是,它在網站上表示,唯一需要進行身份驗證的權限是互聯網。我將把清單文件放在下面。
當我打電話AppKeyPair appKeys = new AppKeyPair(APP_KEY, APP_SECRET)
或AccessType ACCESS_TYPE = AccessType.APP_FOLDER
和我的生活我不明白爲什麼會引發錯誤。聲明(但不是初始化)DropboxAPI<AndroidAuthSession> mDBApi
是好的,這表明庫正在正確導入。
我已經在下面改變它們,所以你們都必須聽取我的意見,但密鑰/祕密常量也是正確的,所以我懷疑它是這樣的。這是我的主要活動的一個片段:
package com.example.xxx.app;
import com.dropbox.client2.DropboxAPI;
import com.dropbox.client2.android.AndroidAuthSession;
import com.dropbox.client2.session.AppKeyPair;
import com.dropbox.client2.session.Session.AccessType;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends Activity {
final static private String APP_KEY = "1234key";
final static private String APP_SECRET = "1234secret";
DropboxAPI<AndroidAuthSession> mDBApi;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AccessType ACCESS_TYPE = AccessType.APP_FOLDER;
AppKeyPair appKeys = new AppKeyPair(APP_KEY, APP_SECRET);
AndroidAuthSession session = new AndroidAuthSession(appKeys, ACCESS_TYPE);
mDBApi = new DropboxAPI<AndroidAuthSession>(session);
setContentView(R.layout.activity_main);
}
我的清單文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.xxx.app"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Dropbox Manifest -->
<activity
android:name="com.dropbox.client2.android.AuthActivity"
android:launchMode="singleTask"
android:configChanges="orientation|keyboard">
<intent-filter>
<data android:scheme="db-mykey" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
問題出在classpath上。此外,onResume()方法還沒有實現,但這不是導致原始崩潰的原因。有幾個罐子(包括一個叫做json-simple的罐子)必須被添加到classpath才能工作 –