Java Android-尝试连接到Dropbox API版本2

Java Android-尝试连接到Dropbox API版本2,java,android,dropbox,dropbox-api,Java,Android,Dropbox,Dropbox Api,我试图通过Android Studio连接到Dropbox api版本2,但我遇到了以下异常: 04-27 23:49:33.356 6482-6482/com.example.user.trackyournevi E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.us

我试图通过Android Studio连接到Dropbox api版本2,但我遇到了以下异常:

04-27 23:49:33.356 6482-6482/com.example.user.trackyournevi 
E/AndroidRuntime: FATAL EXCEPTION: main                                                                              
Process: com.example.user.trackyournevi, PID: 6482                                                                                      
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user.trackyournevi/com.example.user.trackyournevi.Drop
boxActivity}: android.content.ActivityNotFoundException: Unable to find 
explicit activity class 
{com.example.user.trackyournevi/com.dropbox.client2.android.AuthActivity}; 
have you declared this activity in your AndroidManifest.xml?
我的Dropbox活动:

    public class DropboxActivity extends AppCompatActivity implements 
    View.OnClickListener {

    private LinearLayout container;
    private boolean isUserLoggedIn;
    private Button btnLogin;
    private Button btnUpload;
    private Button btnDownload;

    private DropboxAPI<AndroidAuthSession> mDropboxApi;

    private final static String DROPBOX_FILE_DIR = "/TrackYourNevi/";
    private static final int IMAGE_GALLERY_REQUEST = 20;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_dropbox);

       loggedIn(false);
       //callback method
       initializeSession();
    }

    private void initializeSession() {
    //store app key and secret key
    AppKeyPair appKeys = new AppKeyPair(getResources().getString(R.string.DROPBOX_APP_KEY),
            getResources().getString(R.string.DROPBOX_APP_SECRET));
    AndroidAuthSession session = new AndroidAuthSession(appKeys);
    //Pass app key pair to new DropboxApi object
    mDropboxApi = new DropboxAPI<AndroidAuthSession>(session);
    //start session
    mDropboxApi.getSession().startOAuth2Authentication(DropboxActivity.this);
}

@Override
public void onResume() {
    super.onResume();
    if(mDropboxApi.getSession().authenticationSuccessful()) {
        try {
            // Required to complete auth, sets the access token on the session
            mDropboxApi.getSession().finishAuthentication();
            String accessToken = mDropboxApi.getSession().getOAuth2AccessToken();
            loggedIn(true);
        } catch (IllegalStateException e) {
            e.printStackTrace();
        }
    }
}

@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.dxbLoginButton:
            if(isUserLoggedIn) {
                mDropboxApi.getSession().unlink();
                loggedIn(false);
            } else
                mDropboxApi.getSession().startOAuth2Authentication(DropboxActivity.this);
            break;
        case R.id.dxbUploadButton:
            //invoke the image gallery using an implict intent
            Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
            //Where do we want to find the data
            File pictureDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
            String pictureDitrectoryPath = pictureDirectory.getPath() + "/" + getResources().getString(R.string.image_folder_name);
            //Get URI representation
            Uri data = Uri.parse(pictureDitrectoryPath);
            //Set the data and type. get all images from jpg type
            photoPickerIntent.setDataAndType(data, "image/jpg");
            startActivityForResult(photoPickerIntent, IMAGE_GALLERY_REQUEST);
            break;
        case R.id.dxbDownloanButton:
            break;
        default:
            break;
    }
}
公共类DropboxActivity扩展了AppCompatActivity实现
View.OnClickListener{
专用线性布局集装箱;
私有布尔值isUserLoggedIn;
私人按钮;
专用按钮btnUpload;
私人按钮BTN下载;
私有DropboxAPI mDropboxApi;
私有最终静态字符串DROPBOX_FILE_DIR=“/TrackYourNevi/”;
私有静态最终int图像\u画廊\u请求=20;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u dropbox);
loggedIn(假);
//回调方法
初始化会话();
}
私有无效初始化会话(){
//存储应用程序密钥和密钥
AppKeyPair appKeys=新的AppKeyPair(getResources().getString(R.string.DROPBOX\u APP\u KEY),
getResources().getString(R.string.DROPBOX_APP_SECRET));
AndroidAuthSession会话=新的AndroidAuthSession(appKeys);
//将应用程序密钥对传递给新的DropboxApi对象
mDropboxApi=新的DropboxAPI(会话);
//开始会话
mDropboxApi.getSession().startOAuth2Authentication(DropboxActivity.this);
}
@凌驾
恢复时公开作废(){
super.onResume();
如果(mDropboxApi.getSession().authenticationSuccessful()){
试一试{
//需要完成身份验证,请在会话上设置访问令牌
mDropboxApi.getSession().finishAuthentication();
字符串accessToken=mDropboxApi.getSession().getOAuth2AccessToken();
loggedIn(真);
}捕获(非法状态){
e、 printStackTrace();
}
}
}
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例R.id.dxbLoginButton:
if(isUserLoggedIn){
mDropboxApi.getSession().unlink();
loggedIn(假);
}否则
mDropboxApi.getSession().startOAuth2Authentication(DropboxActivity.this);
打破
案例R.id.dxbUploadButton:
//使用隐式意图调用图像库
意向照片采集器内容=新意向(意向.行动\u采集器);
//我们想在哪里找到数据
文件pictureDirectory=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u PICTURES);
String pictureDirectory路径=pictureDirectory.getPath()+“/”+getResources().getString(R.String.image\u文件夹\u名称);
//获取URI表示
Uri数据=Uri.parse(PictureDirectoryPath);
//设置数据和类型。从jpg类型获取所有图像
photoPickerIntent.setDataAndType(数据,“图像/jpg”);
startActivityForResult(照片采集器、图像库请求);
打破
案例R.id.dxbDownloanButton:
打破
违约:
打破
}
}
}

my manifiest.xml包含以下数据:

activity android:name=".DropboxActivity" android:launchMode="singleTask" intent-filter data android:scheme="db-key" action android:name="android.intent.action.VIEW" category android:name="android.intent.category.BROWSABLE" category android:name="android.intent.category.DEFAULT" intent-filter activity 活动android:name=“.DropboxActivity”android:launchMode=“singleTask” 意图过滤器 数据类型:scheme=“db key” action-android:name=“android.intent.action.VIEW” 类别android:name=“android.intent.category.BROWSABLE” 类别android:name=“android.intent.category.DEFAULT” 意图过滤器 活动 看起来我像在其他教程中一样定义了所有内容,但仍然不起作用。
是否有人发现问题并可以帮助我?

您安装了什么Dropbox库?如果您试图使用Dropbox API v2(您应该这样做),那么应该使用。您尝试使用的代码似乎是用于。还有。你在哪里看到API v2 Java SDK的?我一直转到GitHub获取一个没有任何SDK的示例代码。这里有API v2 Java SDK的链接(在我之前的评论中也有链接):您安装了什么Dropbox库?如果您试图使用Dropbox API v2(您应该这样做),那么应该使用。您尝试使用的代码似乎是用于。还有。你在哪里看到API v2 Java SDK的?我一直移动到GitHub获取一个示例代码,但没有任何SDKHere的API v2 Java SDK链接(在我之前的评论中也有链接):