我正在尝试在 Android 应用程序中的“Parse.com”中保存文件。但是,我被以下错误困扰
java.lang.IllegalArgumentException: invalid type for value: class java.io.File
下面提到的是我的代码:
protected void onCreate(Bundle savedInstanceState) {
try {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity);
Parse.enableLocalDatastore(this);
Parse.initialize(this, "nNDrIDPB8evzutqXnMkLNwV5l0yKm6RHQDshJhLN", "bkIb6fI9RWgezwulCHismlNUeYBz9sNxFaLxf8NB");
File f = new File("C:\\Users\\rishii\\AndroidStudioProjects\\Introduction\\file_input9.txt");
FileInputStream fileInputStream = new FileInputStream(f);
byte fileContent[] = new byte[(int)f.length()];
fileInputStream.read(fileContent);
ParseFile parseFile = new ParseFile(fileContent);
ParseObject dataObject = new ParseObject("file_content!");
dataObject.put("file",parseFile);
dataObject.saveInBackground();
ParseUser.enableAutomaticUser();
ParseACL defaultACL = new ParseACL();
ParseACL.setDefaultACL(defaultACL, true);
}
catch (Exception e) {
e.printStackTrace();
}
我非常确定我给出的文件路径是正确的。下面提到的是我的堆栈跟踪:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.rishii.introduction/com.example.rishii.introduction.Main_activity}: java.lang.IllegalArgumentException: invalid type for value: class java.io.File
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5021)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: invalid type for value: class java.io.File
at com.parse.ParseObject.performPut(ParseObject.java:3152)
at com.parse.ParseObject.put(ParseObject.java:3139)
at com.example.rishii.introduction.Main_activity.onCreate(Main_activity.java:77)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
任何建议都有帮助!
最佳答案
在 Android 中,您无法直接从本地系统导入文件。
您必须首先将其保存到 sdacrd 或将该文本文件复制到 Android 项目中的 raw 文件夹中。
然后您可以使用适当的 API 将其保存到任何地方。
File f = new File("C:\\Users\\rishii\\AndroidStudioProjects\\Introduction\\file_input9.txt
这条线引起了问题。
关于java - 无法将数据保存到 Parse.com 云服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32429483/