2015-05-02 91 views
1

我是新來解析和Android應用程序開發。 IM與Android工作室在Mac OS X 工作我都遵循了一個新的項目解析快速入門指南,我下載瞭解析啓動項目,並在Android Studio中打開它。 我按照說明添加了初始化行。 之後,我編譯並運行該項目,它工作正常。 有問題IM是時,即時通訊將在MainActivity的onCreate功能驗證碼:解析啓動項目崩潰

ParseObject testObject = new ParseObject("TestObject"); 
testObject.put("foo", "bar"); 
testObject.saveInBackground(); 

當我嘗試後,香港專業教育學院增加了上面的代碼運行應用程序,我的應用程序崩潰,這個錯誤說,在logcat中: 無法爲具有空ID的用戶設置ReadAcess。 這裏是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是一個鏈接,快速入門的GUID

請幫助! 謝謝。

+0

心靈固定的聯繫?無論如何,請包括您的代碼。也許你錯過了什麼。 – async

+1

你正在運行什麼Android API版本? – pathfinderelite

回答

0

看起來像權限問題。您是否保存當前用戶?你有用戶嗎?

您是否嘗試過這樣的事情:

ParseUser.enableAutomaticUser(); 
ParseUser.getCurrentUser().saveInBackground(); 
ParseACL defaultACL = new ParseACL(); 
ParseACL.setDefaultACL(defaultACL, true); 

Source

也。在添加這些更改時,首先應在測試之前完全刪除應用。

0

感謝您的回答,似乎快速入門指南沒有得到很好的解釋,經過一些修補,我得到它的工作,我複製整個sdk文件夾(解析sdk我的意思)到我的項目庫文件夾(而不是),然後在那個文件夾旁邊複製瞭解析jar文件,然後我必須在android studio中導航到jar文件,右鍵單擊它然後添加爲庫,然後做的伎倆...所以謝謝所有的答覆!