2015-11-18 21 views
0

我想使用ParseQuery.But獲取數據findInBackground()方法總是返回NullPointerException。 這裏是代碼片段:如何修復Parse查詢,它返回的代碼爲-1的Nullpointerexception?

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo ni = cm.getActiveNetworkInfo(); 
     if ((ni != null) && (ni.isConnected())) { 
      ParseQuery<Alert> query = Alert.getQuery(); 
      query.whereEqualTo("category", "Emergency"); 
      Log.d(TAG,"before calling query"); 
      query.findInBackground(new FindCallback<Alert>() { 
       public void done(List<Alert> list, ParseException exp) 
       { 
        if(exp == null){ 
         for(int i=0;i<list.size();i++) 
         { 
          Alert alert = list.get(i); 
          Log.d(TAG, "Title = "+ alert.getTitle() + " link = "+ alert.getLink()); 
         } 

        } else { 
         Log.d(TAG,"no results !!"+ exp.getMessage()+" code ="+ exp.getCode()); 
        } 
       }; 

      }); 
     } 

我已經檢查權限同樣,在表它顯示公衆讀/寫訪問控制列表。

[編輯]在我Application.java

ParseObject.registerSubclass(Alert.class); 
Parse.initialize(this, "ABC", "XYZ"); 
ParseInstallation.getCurrentInstallation().saveInBackground(); 
ParseUser.enableAutomaticUser(); 
ParseACL defaultACL = new ParseACL(); 
ParseACL.setDefaultACL(defaultACL, true); 

因此,誰能建議我錯過了什麼?

+0

可以PLZ分享解析表 –

+1

我想你已經創建ParseObject'的'警報子類,但在應用程序的.java沒有註冊,註冊它像'ParseObject.registerSubclass(Alert.class);' – ved

+0

@ ParagChauhan你的意思是從數據瀏覽器? – Rahul

回答

1

的NullPointerException在查詢只發生2例 -

  • 尚未註冊與Parse.Solution類是添加以下行後Parse.initialize -

    ParseObject.registerSubclass(Alert.class);

  • 類模型已在解析網站或android代碼中進行了更改。解決方案是刪除解析儀表板上的表。

+0

感謝您的迴應...即使在添加它之後,仍然會收到相同的NullPointerException。你的課堂模式意味着什麼改變了?因爲我沒有修改任何地方。 – Rahul

0

添加到Tushar的回覆,我缺少的其他東西,清單文件中的標籤中的android:name字段。

<application 
     android:name ="com.tutorial.Alert.SampleApplication" 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
相關問題