Roh*_*mar 4 android parse-platform
所以基本上我已经尝试了所有的东西,但我一直在崩溃.它有时只会崩溃.这是我的代码:
if (mCurrentUser != null && mCurrentUser.containsKey(Constants.TABLE_POINTS)) {
int points = mCurrentUser.getInt(Constants.TABLE_POINTS) + AppSingleton.sPointsLookupMap.get(pointsKey);
mCurrentUser.put(Constants.TABLE_POINTS, points);
mCurrentUser.saveInBackground();
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
at com.titlesource.ts_foodsource.fragments.KitchenFragment$10.done(KitchenFragment.java:654)
at com.titlesource.ts_foodsource.fragments.KitchenFragment$10.done(KitchenFragment.java:649)
at com.parse.ParseTaskUtils$2$1.run(ParseTaskUtils.java:115)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Run Code Online (Sandbox Code Playgroud)
现在我发现intValue()正在getInt()方法中使用(在ParseObject类中):
public int getInt(String key) {
Number number = this.getNumber(key);
return number == null?0:number.intValue();
}
Run Code Online (Sandbox Code Playgroud)
为什么我得到这个例外.我尝试了一切.添加了空检查,并且还验证了该字段实际存在于mCurrentUser对象中,但都是徒劳的.
如果对此问题进行投票,请留下理由.
Dan*_*nai 13
你有一个Integernull,你试图打开它(int从它做一个简单).
由于已经检查它的getInt(String key)方法ParseObject是否为null,因此不会发生异常.
相反,它将在AppSingleton.sPointsLookupMap.get(pointsKey),所以你试图从地图中获取一个不存在的对象.
确保它存在,或者为代码的这一部分添加正确的错误处理.
| 归档时间: |
|
| 查看次数: |
13047 次 |
| 最近记录: |