gpt4 book ai didi

Android - 上传到 Dropbox

转载 作者:行者123 更新时间:2023-11-29 00:32:10 25 4
gpt4 key购买 nike

我是不是漏掉了什么?我的代码基于此代码引发 NullPointerException 以上传到 Dropbox。

File file = new File(mFileMag.getCurrentDir() +"/"+ mSelectedListItem);
System.out.println(file);
inputStream = new FileInputStream(file);
System.out.println(inputStream);
Entry newEntry = mDBApi.putFile("/" + mSelectedListItem, inputStream,
file.length(), null, null);
System.out.println(newEntry);

system.out 命令的结果看起来不错。 inputStream 变量输出“java.io.FileInputStream@44ecd668”,我对此有点困惑,但文件变量的系统输出显示正确的路径和文件名。 nullPointerException 似乎来自 newEntry 变量的设置,这对我来说意义为零。 Eclipse 显示代码在语法上是正确的。这个 Dropbox 垃圾让我快要死了。

@BenHolland -- 如果我硬编码如下路径 --

 case D_MENU_SEND:

// Uploading content.
FileInputStream inputStream = null;
try {
//File file = new File(mFileMag.getCurrentDir() +"/"+ mSelectedListItem);
File file = new File("/sdcard0/DCIM/100ANDRO/deploy.json");
System.out.println(file);
inputStream = new FileInputStream(file);
System.out.println(inputStream);
Entry newEntry = mDBApi.putFile("/Dropbox/", inputStream,
file.length(), null, null);
System.out.println(newEntry);

Log.i("DbExampleLog", "The uploaded file's rev is: " + newEntry.rev);
} catch (DropboxUnlinkedException e) {
// User has unlinked, ask them to link again here.
Log.e("DbExampleLog", "User has unlinked.");
} catch (DropboxException e) {
Log.e("DbExampleLog", "Something went wrong while uploading.");
} catch (FileNotFoundException e) {
Log.e("DbExampleLog", "File not found.");
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {}
}
}

这只是在 logcat 中生成一个“未找到文件”,这当然是来自 catch (FileNotFoundException)。但是我没有收到 NullPointerException。如果您在代码顶部看到 case 语句,则此代码在单击上下文菜单后运行。

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________他的他

 // Uploading content.
FileInputStream inputStream = null;

File upfile = new File(mFileMag.getCurrentDir() + "/" + mSelectedListItem);
try {
inputStream = new FileInputStream(upfile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println(upfile);
System.out.println(inputStream);

try {
Entry upEntry = mDBApi.putFile("/test.rar", inputStream,upfile.length(), null, null);
System.out.println(upEntry);
} catch (DropboxException e) {
e.printStackTrace();
}

所以我已经更新了代码。我是否对路径进行硬编码似乎无关紧要。即使我这样做,Entry upEntry 行也会导致 NullPointerException。我不知所措。我根本看不出任何会导致这种情况的原因。

________________________________ 来自 nullPointerException 的堆栈跟踪______________________

02-14 13:28:07.370: W/dalvikvm(311): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
02-14 13:28:07.380: E/AndroidRuntime(311): FATAL EXCEPTION: main
02-14 13:28:07.380: E/AndroidRuntime(311): java.lang.NullPointerException
02-14 13:28:07.380: E/AndroidRuntime(311): at com.stavox.zircon.Main.onContextItemSelected(Main.java:722)
02-14 13:28:07.380: E/AndroidRuntime(311): at android.app.Activity.onMenuItemSelected(Activity.java:2199)
02-14 13:28:07.380: E/AndroidRuntime(311): at com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback.onMenuItemSelected(PhoneWindow.java:2744)
02-14 13:28:07.380: E/AndroidRuntime(311): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143)
02-14 13:28:07.380: E/AndroidRuntime(311): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
02-14 13:28:07.380: E/AndroidRuntime(311): at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:137)
02-14 13:28:07.380: E/AndroidRuntime(311): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:874)
02-14 13:28:07.380: E/AndroidRuntime(311): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
02-14 13:28:07.380: E/AndroidRuntime(311): at android.widget.ListView.performItemClick(ListView.java:3382)
02-14 13:28:07.380: E/AndroidRuntime(311): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696)
02-14 13:28:07.380: E/AndroidRuntime(311): at android.os.Handler.handleCallback(Handler.java:587)
02-14 13:28:07.380: E/AndroidRuntime(311): at android.os.Handler.dispatchMessage(Handler.java:92)
02-14 13:28:07.380: E/AndroidRuntime(311): at android.os.Looper.loop(Looper.java:123)
02-14 13:28:07.380: E/AndroidRuntime(311): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-14 13:28:07.380: E/AndroidRuntime(311): at java.lang.reflect.Method.invokeNative(Native Method)
02-14 13:28:07.380: E/AndroidRuntime(311): at java.lang.reflect.Method.invoke(Method.java:521)
02-14 13:28:07.380: E/AndroidRuntime(311): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-14 13:28:07.380: E/AndroidRuntime(311): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-14 13:28:07.380: E/AndroidRuntime(311): at dalvik.system.NativeStart.main(Native Method)

单击“发送到 Dropbox”时会出现堆栈跟踪。我认为,如果我分解整个过程,可能会让别人更容易提供帮助。

  1. 应用程序启动到 ListView - 它是一个文件管理器应用程序 - main.java
  2. 用户单击启动保管箱授权的菜单上的按钮 - 该按钮加载 DropboxfileuploadActivity.java - 这就是完成身份验证的地方 - 这将在身份验证后将它们返回到 main.java。
  3. 用户导航到他们想要上传的文件
  4. 用户长按所述文件并出现上下文菜单 - 这也由 Main.java 处理。
  5. 上下文菜单包含“发送到 Dropbox”项。单击时,它指向包含我们一直在此处查看的代码的 case 语句。这就是生成 NullPointerException 的原因。如您所见,第 722 行是有问题的行。那一行是

     Entry upEntry = mDBApi.putFile("/test.rar", inputStream,upfile.length(), null, null);

    ________________________________________________________________________________________________________________________

所以这就是我最终解决这个问题的方法:

以前我在两个文件之间工作。我在 Main.java 中有 Dropbox 授权码,在 Dropboxfileuploadactivity.java 中有实际的上传代码。无论我尝试什么,我都无法以这种方式上传。我每次都收到 NullPointerException。我最初将其归咎于变量,无法将其与 Dropbox 方法一起使用。经过几天的尝试,最终,将授权代码和上传代码一起移至 Main.java 解决了我的问题。没有更多的 NullPointerExceptions。奇怪,但它奏效了。变量工作正常。

最佳答案

所以这是我最终解决这个问题的方法:

以前我在两个文件之间工作。我在 Main.java 中有 Dropbox 授权码,在 Dropboxfileuploadactivity.java 中有实际的上传代码。无论我尝试什么,我都无法以这种方式上传。我每次都收到 NullPointerException。我最初将其归咎于变量,无法将其与 Dropbox 方法一起使用。经过几天的尝试,最终,将授权代码和上传代码一起移至 Main.java 解决了我的问题。没有更多的 NullPointerExceptions。奇怪,但它奏效了。变量工作正常。

关于Android - 上传到 Dropbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14843820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com