我为Android Dropbox SDK调用getSession().startAuthentication()
时出现此错误的原因是什么?
: 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>
答案 0 :(得分:6)
如果您实际看到“db-CHANGE_ME”(即,这不是您过去常常隐藏应用密钥的占位符),则表示您尚未更新应用Java代码中的应用密钥。该错误消息输出Java代码中提供的密钥,并期望它与清单中的密钥匹配。
您的干净构建可能已经选择了以前没有构建的Java更改。
答案 1 :(得分: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>
答案 2 :(得分:2)
当我复制App_ Key时,我忘了将'db'部分添加到我的答案中。
示例:
<data android:scheme="db-APP_KEY" />
应该是:
<data android:scheme="db-hafsa324dasd" />
不应该:
<data android:scheme="hafsa324dasd" />
答案 3 :(得分:1)
不知道为什么会出现这种情况,但是一个项目干净就行了(我在几天前将代码添加到了清单中,并且自那以后多次清理过)