有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Dropbox API上创建新数据存储错误消息:com。投递箱。同步。安卓DbxRuntimeException$缓存:

我正在开发一个应用程序来制作购物清单。这些列表的内容存储在数据库的表中。我的目标是在多个设备之间共享其中一些表。通过这种方式,我选择在Dropbox数据存储上发送这些表

在第一步中,我尝试按照本教程here创建一个新的Dropbox数据存储。但在我的真实设备(Android 4.2.2)上运行我的应用程序后,我被一条错误消息卡住了。下面我将显示错误消息、代码活动和清单

错误消息:

10-22 00:29:03.473: E/AndroidRuntime(19978): FATAL EXCEPTION: main
10-22 00:29:03.473: E/AndroidRuntime(19978): 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.安卓.DbxRuntimeException$Cache: jlong dropboxsync::Java_com_dropbox_sync_安卓_NativeDatastoreManager_nativeOpenOrCreateDs(JNIEnv*, jclass, jlong, jstring) - Cache error: void dropbox::KvCacheBase::kv_set_impl(const checked_lock&, const string&, const string&) (jni/../../../common/base/sqlite_util.cpp:155): disk I/O error
10-22 00:29:03.473: E/AndroidRuntime(19978):    at 安卓.app.ActivityThread.deliverResults(ActivityThread.java:3337)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at 安卓.app.ActivityThread.handleSendResult(ActivityThread.java:3380)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at 安卓.app.ActivityThread.access$1100(ActivityThread.java:155)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1300)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at 安卓.os.Handler.dispatchMessage(Handler.java:99)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at 安卓.os.Looper.loop(Looper.java:137)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at 安卓.app.ActivityThread.main(ActivityThread.java:5096)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at java.lang.reflect.Method.invokeNative(Native Method)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at java.lang.reflect.Method.invoke(Method.java:511)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:560)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at dalvik.system.NativeStart.main(Native Method)
10-22 00:29:03.473: E/AndroidRuntime(19978): Caused by: com.dropbox.sync.安卓.DbxRuntimeException$Cache: jlong dropboxsync::Java_com_dropbox_sync_安卓_NativeDatastoreManager_nativeOpenOrCreateDs(JNIEnv*, jclass, jlong, jstring) - Cache error: void dropbox::KvCacheBase::kv_set_impl(const checked_lock&, const string&, const string&) (jni/../../../common/base/sqlite_util.cpp:155): disk I/O error
10-22 00:29:03.473: E/AndroidRuntime(19978):    at com.dropbox.sync.安卓.DbxError.exceptionFrom(DbxError.java:235)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at com.dropbox.sync.安卓.NativeLib.exceptionFrom(NativeLib.java:254)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at com.dropbox.sync.安卓.NativeLib.throwFrom(NativeLib.java:242)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at com.dropbox.sync.安卓.NativeDatastoreManager.nativeOpenOrCreateDs(Native Method)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at com.dropbox.sync.安卓.NativeDatastoreManager.nativeOpenOrCreateDs(Native Method)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at com.dropbox.sync.安卓.NativeDatastoreManager.openOrCreateDatastore(NativeDatastoreManager.java:140)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at com.dropbox.sync.安卓.DbxDatastoreManager.openOrCreateDatastore(DbxDatastoreManager.java:342)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at com.example.dvp_list7.ListingArticlesDropb.onActivityResult(ListingArticlesDropb.java:100)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at 安卓.app.Activity.dispatchActivityResult(Activity.java:5342)
10-22 00:29:03.473: E/AndroidRuntime(19978):    at 安卓.app.ActivityThread.deliverResults(ActivityThread.java:3333)
10-22 00:29:03.473: E/AndroidRuntime(19978):    ... 11 more

通过使用Eclipse的调试模式运行我的应用程序,我知道问题的关键是:

    try {
   //  This line makes my app to stop.
        DbxDatastore datastore = mDatastoreManager.openOrCreateDatastore("articles");
    } catch (DbxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

活动代码(ListingArticlesDropb.java):

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();
        }


    }


}

舱单代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
    package="com.example.dvp_list7"
    安卓:versionCode="2"
    安卓:versionName="1.0" >

    <uses-sdk
        安卓:minSdkVersion="8"
        安卓:targetSdkVersion="19" />

    <uses-permission 安卓:name="安卓.permission.INTERNET" />
    <uses-permission 安卓:name="安卓.permission.ACCESS_NETWORK_STATE" />

    <application
        安卓:allowBackup="true"
        安卓:icon="@drawable/ic_launcher"
        安卓:label="@string/app_name"
        安卓:theme="@style/AppTheme" >
        <activity
            安卓:name="com.example.dvp_list7.MainActivity"
            安卓:label="@string/app_name" >
            <!-- <activity 安卓:name="com.example.dvp_list5.ListingArticles"
            安卓:label="@string/app_name" > -->

            <intent-filter>
                <action 安卓:name="安卓.intent.action.MAIN" />

                <category 安卓:name="安卓.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity 安卓:name="com.example.dvp_list7.ListingArticles"/>

        <activity 安卓:name="com.example.dvp_list7.DropboxHelper"/>
        <activity 安卓:name="com.example.dvp_list7.ListingArticlesDropb"/>


        <activity 安卓:name="com.dropbox.sync.安卓.DbxAuthActivity" />
        <activity
          安卓:name="com.dropbox.client2.安卓.AuthActivity"
          安卓:launchMode="singleTask" >
          <intent-filter>
            <data 安卓:scheme="db-qeojd5e8htkkswc" />

            <action 安卓:name="安卓.intent.action.VIEW" />

            <category 安卓:name="安卓.intent.category.BROWSABLE" />
            <category 安卓:name="安卓.intent.category.DEFAULT" />
          </intent-filter>
        </activity>
        <service
            安卓:name="com.dropbox.sync.安卓.DbxSyncService"
            安卓:enabled="true"
            安卓:exported="false"
            安卓:label="Dropbox Sync" />   
    </application>

</manifest>

如果你能解决我的问题,谢谢你


共 (0) 个答案