6

任何想法为什么我在调用getSession().startAuthentication()Android Dropbox SDK 时会收到此错误?

: FATAL EXCEPTION: main
: java.lang.IllegalStateException: URI scheme in your app's manifest is not set up correctly. You should have a com.dropbox.client2.android.AuthActivity with the scheme: db-CHANGE_ME

然而,我的 AndroidManifest.xml 按照<Application></Application>入门说明中的说明包含以下内容。

<activity
  android:name="com.dropbox.client2.android.AuthActivity"
  android:launchMode="singleTask"
  android:configChanges="orientation|keyboard">
  <intent-filter>
    <!-- Change this to be db- followed by your app key -->
    <data android:scheme="db-MYKEYISHERE" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE"/>
    <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</activity>
4

4 回答 4

6

如果您实际上看到“db-CHANGE_ME”(即,这不是您用来隐藏应用程序密钥的占位符),那么这意味着您尚未在应用程序的 Java 代码中更新应用程序密钥。该错误消息输出 Java 代码中提供的密钥,并期望它与清单中的密钥匹配。

您的干净构建可能选择了一些以前未构建的 Java 更改。

于 2013-04-10T03:35:08.170 回答
5

对于那些面临这个问题的人,如果你和我一样,你可能不会注意一个小细节,看看你的清单:

<intent-filter>
    <data android:scheme="db-APP_KEY" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

你不应该用你的应用程序密钥替换整个字符串db-APP_KEY,你应该离开db-那里db-{HERE YOUR APP KEY}我知道我知道,我花了一段时间才弄清楚这一点。

例子:

<intent-filter>
    <data android:scheme="db-hafsa324dasd" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
于 2013-11-10T23:45:23.430 回答
2

当我复制 App_ Key 时,我忘记将“db”部分添加到我的答案中。

例子:

 <data android:scheme="db-APP_KEY" />

应该 :

 <data android:scheme="db-hafsa324dasd" />

不应该是 :

<data android:scheme="hafsa324dasd" />
于 2015-03-21T02:05:42.687 回答
1

不知道为什么会这样,但是一个项目清理成功了(我几天前将代码添加到清单中并清理了几次)

于 2013-04-08T13:51:11.547 回答