Dropbox API的过时代码和教程?

时间:2019-06-07 11:31:35

标签: java android

我不明白为什么Android Studio无法识别.runOnUiThread(无法解析方法)和“ main”(无法解析符号)。

我一直在关注youtube教程(该视频已有4年以上的历史),内容涉及如何对通过保管箱上传和下载文件的应用进行编程。将源代码直接复制到MainActivity.java中会导致某些代码变为红色,但是按视频中的.runOnUiThread和“ main”除外,按“ ALT + ENTER”可以解决该问题。 是什么原因导致此问题以及如何解决?

private void DownloadFromDropboxFromPath (String downloadPathTo, String downloadPathFrom)
{
    DropboxDownloadPathTo = downloadPathTo;
    DropboxDownloadPathFrom = downloadPathFrom;
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            Toast.makeText(getApplicationContext(), "Download file ...", Toast.LENGTH_SHORT).show();
            Thread th = new Thread(new Runnable() {
                public void run() {
                    File file = new File(DropboxDownloadPathTo + DropboxDownloadPathFrom.substring(DropboxDownloadPathFrom.lastIndexOf('.')));
                    if (file.exists()) file.delete();
                    try {
                        FileOutputStream outputStream = new FileOutputStream(file);
                        main.dropboxAPI.getFile(DropboxDownloadPathFrom, null, outputStream, null);
                        getMain().runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(getApplicationContext(), "File successfully downloaded.", Toast.LENGTH_SHORT).show();
                            }
                        });
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
            th.start();
        }
    });
}

1 个答案:

答案 0 :(得分:1)

我猜这是您观看的教程:https://youtu.be/0PjND_7Fzd8。基于此,因为您的java文件不是“ main.java”或您的类名不是“ main”或两者兼而有之,所以“ main”会以红色突出显示。公共类名和文件名必须相同并且区分大小写。至于“ runOnUiThread”,这可能是因为您的类没有扩展ActionBarActivity或因为您可能没有正确设置Android SDK。

P.S。您是否尝试过pCloud?设置起来更容易,API也更好。