NullPointerException通过加载JSON内容凌空
问题描述:
即时通讯尝试从一个URL的内容加载到一个片段的列表视图,但每次我得到一个NullPointerException和我真的不知道我做错了什么。我希望你能帮助我,指出我的错误:NullPointerException通过加载JSON内容凌空
public class Neuigkeiten extends Fragment
{
// Neuigkeiten URL
public static final String neuigkeitenURL = //my URL
// Log tag
private static final String TAG = Neuigkeiten.class.getSimpleName();
private ProgressDialog progress;
private List<NeuigkeitenBean> neuigkeitenListe = new ArrayList<NeuigkeitenBean>();
private ListView listView;
private CustomListAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater , ViewGroup container ,
Bundle savedInstanceState)
{
View neuigkeitenView = inflater.inflate(R.layout.listmainview ,
container , false);
progress = new ProgressDialog(getActivity());
listView = (ListView) neuigkeitenView.findViewById(R.id.list);
adapter = new CustomListAdapter(this , neuigkeitenListe);
listView.setAdapter(adapter);
// hole die SharedPreferences
final SharedPreferences sharedPf = PreferenceManager
.getDefaultSharedPreferences(getActivity().getBaseContext());
// hole die Datenbank, die nachher zum Server geschickt werden muss
String datenbank = sharedPf.getString("Datenbank" , "");
//POST Parameter
JSONObject parameter = new JSONObject();
try
{
parameter.put("datenbank" , datenbank);
}
catch (JSONException je)
{
//wenn das hier auf die Fresse fliegt breche alles ab;
je.printStackTrace();
}
JsonObjectRequest jsonAntwort = new JsonObjectRequest(Method.POST ,
neuigkeitenURL , parameter , new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response)
{
Log.d(TAG , response.toString());
progress.hide();
// Parsing json
for (int i = 0; i < response.length(); i++)
{
try
{
NeuigkeitenBean neuigkeitenBean = new NeuigkeitenBean();
neuigkeitenBean.setUeberschrift(response.getString("head"));
neuigkeitenBean.setText((response.getString("content")));
neuigkeitenBean.setBild(response.getString("image"));
// Bean zur Liste hinzufügen
neuigkeitenListe.add(neuigkeitenBean);
}
catch (JSONException e)
{
e.printStackTrace();
}
}
// notifying list adapter about data changes
// so that it renders the list view with updated data
adapter.notifyDataSetChanged();
}
} , new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error)
{
error.printStackTrace();
VolleyLog.d(TAG , "Error: " + error.getMessage());
progress.dismiss();
}
});
NeuigkeitenHelper.getInstance().addToRequestQueue(jsonAntwort);
return neuigkeitenView;
}
}
堆栈跟踪:
12-04 19:22:49.256: E/AndroidRuntime(4335): java.lang.NullPointerException
12-04 19:22:49.256: E/AndroidRuntime(4335): at com.sits.activitys.Neuigkeiten.onCreateView(Neuigkeiten.java:114)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.View.measure(View.java:16497)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.View.measure(View.java:16497)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
12-04 19:22:49.256: E/AndroidRuntime(4335): at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.View.measure(View.java:16497)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
12-04 19:22:49.256: E/AndroidRuntime(4335): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.View.measure(View.java:16497)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1912)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1109)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1291)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5600)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.Choreographer.doFrame(Choreographer.java:544)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.os.Handler.handleCallback(Handler.java:733)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.os.Handler.dispatchMessage(Handler.java:95)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.os.Looper.loop(Looper.java:136)
12-04 19:22:49.256: E/AndroidRuntime(4335): at android.app.ActivityThread.main(ActivityThread.java:5001)
12-04 19:22:49.256: E/AndroidRuntime(4335): at java.lang.reflect.Method.invokeNative(Native Method)
12-04 19:22:49.256: E/AndroidRuntime(4335): at java.lang.reflect.Method.invoke(Method.java:515)
12-04 19:22:49.256: E/AndroidRuntime(4335): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
12-04 19:22:49.256: E/AndroidRuntime(4335): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
12-04 19:22:49.256: E/AndroidRuntime(4335): at dalvik.system.NativeStart.main(Native Method)
变量jsonAntwort是空的,但是我相信,该PARAMS是正确的....行114:
NeuigkeitenHelper.getInstance().addToRequestQueue(jsonAntwort);
答
如果NeuigkeitenHelper扩展应用程序,请在您的Manifest中检查一次。那么你应该在Manifest的Application标签中使用这个类。
Exapmle:
<application
android:name="package.YourApplicationClass" <--------
android:allowBackup="true"
android:debuggable="true"
android:icon="@drawable/ic_launcher"
android:label="xyz"
android:screenOrientation="landscape"
android:theme="@style/AppTheme">
附上您的堆栈跟踪,并显示在错误发生。 – mkobit 2014-12-04 19:23:08
'NeuigkeitenHelper.getInstance()'为空。 你应该检查这个变量。你能解释一下这个变量实际上在做什么吗? – Anatol 2014-12-04 19:36:12