我是解析和android应用程序开发的新手。我正在与Mac OS X上的android studio一起工作。我已经按照一个新项目的解析快速入门指南进行了操作,我下载了parse starter项目并在android studio中打开了它。我已经按照说明进行了操作,添加了初始化行。之后,我编译并运行了这个项目,它工作得很好。我遇到的问题是,当我在MainActivity onCreate函数中添加以下代码时:
ParseObject testObject = new ParseObject("TestObject");
testObject.put("foo", "bar");
testObject.saveInBackground();当我尝试运行应用程序后,ive添加了上述代码,我的应用程序崩溃,它在logcat中显示此错误: can‘t setReadAcess a user with null id。以下是来自logcat的完整日志:
> 05-02 22:18:42.006 18811-18811/? D/dalvikvm﹕ Not late-enabling
> CheckJNI (already on) 05-02 22:18:42.176
> 18811-18845/com.parse.starter I/dalvikvm﹕ Could not find method
> android.database.Cursor.getNotificationUri, referenced from method
> com.parse.ParseSQLiteCursor.getNotificationUri 05-02 22:18:42.176
> 18811-18845/com.parse.starter W/dalvikvm﹕ VFY: unable to resolve
> interface method 139: Landroid/database/Cursor;.getNotificationUri
> ()Landroid/net/Uri; 05-02 22:18:42.176 18811-18845/com.parse.starter
> D/dalvikvm﹕ VFY: replacing opcode 0x72 at 0x0002 05-02 22:18:42.225
> 18811-18811/com.parse.starter I/dalvikvm﹕ Could not find method
> android.app.ActivityManager.isLowRamDevice, referenced from method
> com.parse.ErrorReporter.getConstantDeviceData 05-02 22:18:42.225
> 18811-18811/com.parse.starter W/dalvikvm﹕ VFY: unable to resolve
> virtual method 7: Landroid/app/ActivityManager;.isLowRamDevice ()Z
> 05-02 22:18:42.225 18811-18811/com.parse.starter D/dalvikvm﹕ VFY:
> replacing opcode 0x6e at 0x00c1 05-02 22:18:42.225
> 18811-18811/com.parse.starter D/CrashReporting﹕ Crash reporting is
> enabled for com.parse.starter, initializing... 05-02 22:18:42.295
> 18811-18818/com.parse.starter D/dalvikvm﹕ GC_CONCURRENT freed 285K, 3%
> free 12666K/12999K, paused 0ms+1ms 05-02 22:18:42.295
> 18811-18811/com.parse.starter D/CrashReporting﹕ Looking for error
> files in /data/data/com.parse.starter/files/com.parse/cr/reports 05-02
> 22:18:42.295 18811-18811/com.parse.starter D/CrashReporting﹕ Looking
> for error files in
> /data/data/com.parse.starter/files/com.parse/cr/minidumps 05-02
> 22:18:42.365 18811-18811/com.parse.starter D/AndroidRuntime﹕ Shutting
> down VM 05-02 22:18:42.365 18811-18811/com.parse.starter W/dalvikvm﹕
> threadid=1: thread exiting with uncaught exception (group=0xb3125180)
> 05-02 22:18:42.365 18811-18811/com.parse.starter E/CrashReporting﹕
> ParseCrashReporting caught a RuntimeException exception for
> com.parse.starter. Building report. 05-02 22:18:42.375
> 18811-18811/com.parse.starter E/CrashReporting﹕ Handling exception for
> crash
> java.lang.RuntimeException: Unable to create application com.parse.starter.ParseApplication:
> java.lang.IllegalArgumentException: cannot setReadAccess for a user
> with null id
> at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3957)
> at android.app.ActivityThread.access$1300(ActivityThread.java:123)
> at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
> at android.os.Handler.dispatchMessage(Handler.java:99)
> at android.os.Looper.loop(Looper.java:137)
> at android.app.ActivityThread.main(ActivityThread.java:4424)
> at java.lang.reflect.Method.invokeNative(Native Method)
> at java.lang.reflect.Method.invoke(Method.java:511)
> at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
> at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
> at dalvik.system.NativeStart.main(Native Method)
> Caused by: java.lang.IllegalArgumentException: cannot setReadAccess for a user with null id
> at com.parse.ParseACL.setReadAccess(ParseACL.java:308)
> at com.parse.ParseACL.getDefaultACL(ParseACL.java:61)
> at com.parse.ParseObject.setDefaultValues(ParseObject.java:3385)
> at com.parse.ParseObject.<init>(ParseObject.java:181)
> at com.parse.starter.ParseApplication.onCreate(ParseApplication.java:32)
> at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
> at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3954)
> at android.app.ActivityThread.access$1300(ActivityThread.java:123)
> at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
> at android.os.Handler.dispatchMessage(Handler.java:99)
> at android.os.Looper.loop(Looper.java:137)
> at android.app.ActivityThread.main(ActivityThread.java:4424)
> at java.lang.reflect.Method.invokeNative(Native Method)
> at java.lang.reflect.Method.invoke(Method.java:511)
> at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
> at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
> at dalvik.system.NativeStart.main(Native Method) 05-02 22:18:42.385 18811-18811/com.parse.starter D/CrashReporting﹕
> Generating report file for crash 05-02 22:18:42.538
> 18811-18819/com.parse.starter I/dalvikvm﹕ threadid=3: reacting to
> signal 3 05-02 22:18:42.538 18811-18819/com.parse.starter I/dalvikvm﹕
> Wrote stack traces to '/data/anr/traces.txt' 05-02 22:18:42.607
> 18811-18818/com.parse.starter D/dalvikvm﹕ GC_CONCURRENT freed 318K, 4%
> free 12764K/13191K, paused 1ms+0ms 05-02 22:18:42.766
> 18811-18811/com.parse.starter V/CrashReporting﹕ About to start
> ReportSenderWorker from #handleException 05-02 22:18:42.766
> 18811-18872/com.parse.starter D/CrashReporting﹕ #checkAndSendReports -
> start 05-02 22:18:42.766 18811-18872/com.parse.starter
> D/CrashReporting﹕ Looking for error files in
> /data/data/com.parse.starter/files/com.parse/cr/reports 05-02
> 22:18:42.766 18811-18872/com.parse.starter D/CrashReporting﹕ Loading
> file 1430594322387-IllegalArgumentException-1.stacktrace 05-02
> 22:18:42.796 18811-18872/com.parse.starter I/CrashReporting﹕ Sending
> file 1430594322387-IllegalArgumentException-1.stacktrace 05-02
> 22:18:42.796 18811-18872/com.parse.starter D/CrashReporting﹕ Sending
> crash report to Parse... 05-02 22:18:42.806
> 18811-18872/com.parse.starter D/CrashReporting﹕ #checkAndSendReports -
> finish 05-02 22:18:42.876 18811-18811/com.parse.starter
> E/AndroidRuntime﹕ FATAL EXCEPTION: main
> java.lang.RuntimeException: Unable to create application com.parse.starter.ParseApplication:
> java.lang.IllegalArgumentException: cannot setReadAccess for a user
> with null id
> at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3957)
> at android.app.ActivityThread.access$1300(ActivityThread.java:123)
> at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
> at android.os.Handler.dispatchMessage(Handler.java:99)
> at android.os.Looper.loop(Looper.java:137)
> at android.app.ActivityThread.main(ActivityThread.java:4424)
> at java.lang.reflect.Method.invokeNative(Native Method)
> at java.lang.reflect.Method.invoke(Method.java:511)
> at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
> at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
> at dalvik.system.NativeStart.main(Native Method)
> Caused by: java.lang.IllegalArgumentException: cannot setReadAccess for a user with null id
> at com.parse.ParseACL.setReadAccess(ParseACL.java:308)
> at com.parse.ParseACL.getDefaultACL(ParseACL.java:61)
> at com.parse.ParseObject.setDefaultValues(ParseObject.java:3385)
> at com.parse.ParseObject.<init>(ParseObject.java:181)
> at com.parse.starter.ParseApplication.onCreate(ParseApplication.java:32)
> at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
> at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3954)
> at android.app.ActivityThread.access$1300(ActivityThread.java:123)
> at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
> at android.os.Handler.dispatchMessage(Handler.java:99)
> at android.os.Looper.loop(Looper.java:137)
> at android.app.ActivityThread.main(ActivityThread.java:4424)
> at java.lang.reflect.Method.invokeNative(Native Method)
> at java.lang.reflect.Method.invoke(Method.java:511)
> at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
> at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
> at dalvik.system.NativeStart.main(Native Method) 05-02 22:18:43.026 18811-18819/com.parse.starter I/dalvikvm﹕ threadid=3:
> reacting to signal 3 05-02 22:18:43.026 18811-18819/com.parse.starter
> I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt' 05-02
> 22:18:43.455 18811-18819/com.parse.starter I/dalvikvm﹕ threadid=3:
> reacting to signal 3 05-02 22:18:43.455 18811-18819/com.parse.starter
> I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'没有明显的原因会崩溃,因为我遵循了快速入门指南中的确切步骤。你知道为什么会发生这种事吗?
here是快速入门指南的链接
请帮帮我!谢谢。
发布于 2015-05-05 17:43:21
看起来像是权限问题。您是否保存了当前用户?你有用户吗?
你有没有试过这样的东西:
ParseUser.enableAutomaticUser();
ParseUser.getCurrentUser().saveInBackground();
ParseACL defaultACL = new ParseACL();
ParseACL.setDefaultACL(defaultACL, true);还有。当您添加这些更改时,请在测试前完全删除应用程序。
发布于 2015-05-06 17:51:44
感谢你的回答,似乎快速入门指南没有得到很好的解释,经过一些修补,我让它工作了,我复制了整个sdk文件夹(我指的是parse sdk )到我的项目libs文件夹(而不是像以前那样复制整个内容),然后在那个文件夹旁边我只复制了parse jar文件,然后我不得不进入android studio,导航到jar文件,右键单击它,然后添加为库,这就完成了……所以谢谢你所有的回复!
https://stackoverflow.com/questions/30006534
复制相似问题