Ich bekomme eine NullPointerException
in der StickyGridHeaders library, während andere (this) und (this) scheinen es ohne diese Ausnahme zu verwenden.Warum bekomme ich eine NullPointerException mit der StickyGridHeaders-Bibliothek, während andere die gleiche Bibliothek verwenden?
Ich sollte wahrscheinlich auch erwähnen, dass ich die .jar
Datei der Bibliothek in meinem Projekt hinzufügen, weil ich Eclipse (statt Android Studio) verwende.
Wie kann ich dieses Problem lösen?
Teil Logcat:
...
06-24 08:42:22.419: E/AndroidRuntime(1495): FATAL EXCEPTION: main
06-24 08:42:22.419: E/AndroidRuntime(1495): java.lang.NullPointerException
06-24 08:42:22.419: E/AndroidRuntime(1495): at com.tonicartos.widget.stickygridheaders.StickyGridHeadersSimpleArrayAdapter.getHeaderView(StickyGridHeadersSimpleArrayAdapter.java:93)
...
SSCCE:
MainActivity.java:
public class MainActivity extends Activity {
private static final String TAG = MainActivity.class.getSimpleName();
private StickyGridHeadersGridView mainGridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainGridView = (StickyGridHeadersGridView) findViewById(R.id.mainActivity_gridView);
final String[] dataArray = {
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
};
StickyGridHeadersSimpleArrayAdapter<String> stickyGridHeadersSimpleAdapter =
new StickyGridHeadersSimpleArrayAdapter<String>(
getApplicationContext(), dataArray, R.layout.header,
R.layout.item);
mainGridView.setAdapter(stickyGridHeadersSimpleAdapter);
mainGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.i(TAG, "Item labelled " + dataArray[position] + "clicked.");
}
});
}
}
activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<com.tonicartos.widget.stickygridheaders.StickyGridHeadersGridView android:id="@+id/mainActivity_gridView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:background="#90000000"
android:gravity="center"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:numColumns="4"
android:stretchMode="columnWidth" />
</RelativeLayout>
header.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="10dp"
android:textColor="#fff" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#ff33b5e5" >
</FrameLayout>
</LinearLayout>
item.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="10dp"
android:textColor="#fff" />
Edit:
06-24 08:42:22.415: W/dalvikvm(1495): threadid=1: thread exiting with uncaught exception (group=0xa62ad288)
06-24 08:42:22.419: E/AndroidRuntime(1495): FATAL EXCEPTION: main
06-24 08:42:22.419: E/AndroidRuntime(1495): java.lang.NullPointerException
06-24 08:42:22.419: E/AndroidRuntime(1495): at com.tonicartos.widget.stickygridheaders.StickyGridHeadersSimpleArrayAdapter.getHeaderView(StickyGridHeadersSimpleArrayAdapter.java:93)
06-24 08:42:22.419: E/AndroidRuntime(1495): at com.tonicartos.widget.stickygridheaders.StickyGridHeadersSimpleAdapterWrapper.getHeaderView(StickyGridHeadersSimpleAdapterWrapper.java:57)
06-24 08:42:22.419: E/AndroidRuntime(1495): at com.tonicartos.widget.stickygridheaders.StickyGridHeadersBaseAdapterWrapper.getView(StickyGridHeadersBaseAdapterWrapper.java:172)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.widget.AbsListView.obtainView(AbsListView.java:2267)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.widget.GridView.onMeasure(GridView.java:1030)
06-24 08:42:22.419: E/AndroidRuntime(1495): at com.tonicartos.widget.stickygridheaders.StickyGridHeadersGridView.onMeasure(StickyGridHeadersGridView.java:822)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.View.measure(View.java:15172)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:617)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:399)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.View.measure(View.java:15172)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.View.measure(View.java:15172)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.View.measure(View.java:15172)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
06-24 08:42:22.419: E/AndroidRuntime(1495): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2148)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.View.measure(View.java:15172)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1848)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1100)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1273)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.Choreographer.doFrame(Choreographer.java:525)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.os.Handler.handleCallback(Handler.java:615)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.os.Handler.dispatchMessage(Handler.java:92)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.os.Looper.loop(Looper.java:137)
06-24 08:42:22.419: E/AndroidRuntime(1495): at android.app.ActivityThread.main(ActivityThread.java:4745)
06-24 08:42:22.419: E/AndroidRuntime(1495): at java.lang.reflect.Method.invokeNative(Native Method)
06-24 08:42:22.419: E/AndroidRuntime(1495): at java.lang.reflect.Method.invoke(Method.java:511)
06-24 08:42:22.419: E/AndroidRuntime(1495): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
06-24 08:42:22.419: E/AndroidRuntime(1495): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
06-24 08:42:22.419: E/AndroidRuntime(1495): at dalvik.system.NativeStart.main(Native Method)
06-24 08:47:22.611: I/Process(1495): Sending signal. PID: 1495 SIG: 9
Es sieht aus wie es IDs auf dem 'TextView's im Kopf- und Positions Layouts erwartet; speziell '@android: id/text1' für beide, wenn der verknüpfte Code tatsächlich das ist, was Sie gerade ausführen. Die vollständige Stapelverfolgung wäre hilfreich. –
Für Mike Kommentar-Mitarbeiter besuchen Sie diese: https://github.com/TonicArtios/StickyGridHeaders/blob/master/Example/res/layout/item.xml und https://github.com/TonicArtos/StickyGridHeaders/blob/master/ Beispiel/res/layout/header.xml. – Ironman
@MikeM. Posted Complete Stack-Trace in der Frage – Solace