0
我正在開發一個應用程序來建立不同名稱的列表。列表的內容位於數據庫內的表格中。我希望將這些表中的一些發送到Dropbox數據存儲區,以便在多個設備之間共享它們。
對於我的實踐,我開始嘗試在連接我的應用程序後在Dropbox上創建一個簡單的表格。但我有一個錯誤信息,我想不通爲什麼...
這裏我的活動:
public class ListingArticlesDropb extends Activity implements PersonneAdapterListener{
static final int REQUEST_LINK_TO_DBX = 0; // This value is up to you
private Button mLinkButton;
private Button mUnlinkButton;
private DbxAccountManager mAccountManager;
private DbxDatastoreManager mDatastoreManager;
private DbxAccount account ;
final private String APP_KEY = **** APP_KEY **** ;
final private String APP_SECRET = **** APP_SECRET **** ;
DbxDatastore datastore;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_articles);
/**
* Get objects from the precedent activity
*/
Bundle bundle = getIntent().getExtras();
final String extras = bundle.getString("Title");
/**
* Connection to the datastore Dropbox
*/
// Set up the account manager
mAccountManager = DbxAccountManager.getInstance(getApplicationContext(), APP_KEY, APP_SECRET);
mAccountManager.startLink((Activity)ListingArticlesDropb.this, REQUEST_LINK_TO_DBX);
// Set up the datastore manager
if (mAccountManager.hasLinkedAccount()) {
try {
// Use Dropbox datastores
mDatastoreManager = DbxDatastoreManager.forAccount(mAccountManager.getLinkedAccount());
Toast.makeText(this, "Connection Dropbox", Toast.LENGTH_LONG).show();
} catch (DbxException.Unauthorized e) {
System.out.println("Account was unlinked remotely");
}
}
if (mDatastoreManager == null) {
// Account isn't linked yet, use local datastores
mDatastoreManager = DbxDatastoreManager.localManager(mAccountManager);
Toast.makeText(this, "Connection Locale", Toast.LENGTH_LONG).show();
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_LINK_TO_DBX) {
if (resultCode == Activity.RESULT_OK) {
account = mAccountManager.getLinkedAccount();
Toast.makeText(this, "onActivityResult", Toast.LENGTH_LONG).show();
try {
// Migrate any local datastores to the linked account
mDatastoreManager.migrateToAccount(account);
// Now use Dropbox datastores
mDatastoreManager = DbxDatastoreManager.forAccount(account);
} catch (DbxException e) {
e.printStackTrace();
}
} else {
// Link failed or was cancelled by the user
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
// ---------- The problem comes here ------------- //
try {
// This line makes my app to stop.
DbxDatastore datastore = mDatastoreManager.openOrCreateDatastore("Articles");
} catch (DbxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onClickNom(Article item, int position) {
// TODO Auto-generated method stub
}
@Override
public void onClickNomToDelete(Article item, int position) {
// TODO Auto-generated method stub
}
}
這裏的錯誤消息:
10-21 19:39:02.410: E/AndroidRuntime(22961): FATAL EXCEPTION: main
10-21 19:39:02.410: E/AndroidRuntime(22961): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=0, data=null} to activity {com.example.dvp_list7/com.example.dvp_list7.ListingArticlesDropb}: com.dropbox.sync.android.DbxRuntimeException$IllegalArgument: Illegal datastore ID 'Articles'.
10-21 19:39:02.410: E/AndroidRuntime(22961): at android.app.ActivityThread.deliverResults(ActivityThread.java:3337)
10-21 19:39:02.410: E/AndroidRuntime(22961): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3380)
10-21 19:39:02.410: E/AndroidRuntime(22961): at android.app.ActivityThread.access$1100(ActivityThread.java:155)
10-21 19:39:02.410: E/AndroidRuntime(22961): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1300)
10-21 19:39:02.410: E/AndroidRuntime(22961): at android.os.Handler.dispatchMessage(Handler.java:99)
10-21 19:39:02.410: E/AndroidRuntime(22961): at android.os.Looper.loop(Looper.java:137)
10-21 19:39:02.410: E/AndroidRuntime(22961): at android.app.ActivityThread.main(ActivityThread.java:5096)
10-21 19:39:02.410: E/AndroidRuntime(22961): at java.lang.reflect.Method.invokeNative(Native Method)
10-21 19:39:02.410: E/AndroidRuntime(22961): at java.lang.reflect.Method.invoke(Method.java:511)
10-21 19:39:02.410: E/AndroidRuntime(22961): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
10-21 19:39:02.410: E/AndroidRuntime(22961): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
10-21 19:39:02.410: E/AndroidRuntime(22961): at dalvik.system.NativeStart.main(Native Method)
10-21 19:39:02.410: E/AndroidRuntime(22961): Caused by: com.dropbox.sync.android.DbxRuntimeException$IllegalArgument: Illegal datastore ID 'Articles'.
10-21 19:39:02.410: E/AndroidRuntime(22961): at com.dropbox.sync.android.DbxDatastore.checkId(DbxDatastore.java:534)
10-21 19:39:02.410: E/AndroidRuntime(22961): at com.dropbox.sync.android.DbxDatastoreManager.openOrCreateDatastore(DbxDatastoreManager.java:342)
10-21 19:39:02.410: E/AndroidRuntime(22961): at com.example.dvp_list7.ListingArticlesDropb.onActivityResult(ListingArticlesDropb.java:113)
10-21 19:39:02.410: E/AndroidRuntime(22961): at android.app.Activity.dispatchActivityResult(Activity.java:5342)
10-21 19:39:02.410: E/AndroidRuntime(22961): at android.app.ActivityThread.deliverResults(ActivityThread.java:3333)
10-21 19:39:02.410: E/AndroidRuntime(22961): ... 11 more
感謝很多人誰可以幫助我!
謝謝你的好消息@smarx!但是,即使通過「文章」來刪除「文章」,也不會創建數據存儲,並且會收到新的錯誤消息。這似乎有一個緩存問題。我要編輯我的問題以使用此錯誤消息進行更新。 – KevHV 2014-10-21 22:28:07
請問一個新問題,因爲你的新問題與這個問題無關。 – smarx 2014-10-22 02:35:09