Ich habe eine MainActivity, die eine Schaltfläche namens Überwachung hat. Wenn ich den Knopf drücke, sollte er die nahegelegenen Beacons anzeigen. Wenn ich den Knopf drücke, erscheint ein Fehler, der besagt, dass meine Anwendung nicht mehr funktioniert. Hier ist der Code der Schaltfläche Aktivität:ListAdapter funktioniert nicht
public class MonitoringBeacons extends AppCompatActivity {
private ProximityManagerContract proximityManager;
ListAdapter beaconsAdapter;
ListView listView;
List<String> beaconsList = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_monitoring_beacons);
KontaktSDK.initialize("kasjdhioasjkdoasdjo");
proximityManager = new ProximityManager(this);
proximityManager.setEddystoneListener(createEddystoneListener());
setAdapter();
listView.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
String beacon = String.valueOf(adapterView.getItemAtPosition(position));
Toast.makeText(MonitoringBeacons.this, beacon, Toast.LENGTH_SHORT).show();
}
}
);
}
protected void setAdapter() {
if(beaconsList.isEmpty()) {
Toast.makeText(MonitoringBeacons.this, "No beacons found", Toast.LENGTH_SHORT).show();
return ;
}
beaconsAdapter = new CustomListAdapter(this, beaconsList);
listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(beaconsAdapter);
}
@Override
protected void onStart() {
super.onStart();
startScanning();
}
@Override
protected void onStop() {
proximityManager.stopScanning();
super.onStop();
}
@Override
protected void onDestroy() {
proximityManager.disconnect();
proximityManager = null;
super.onDestroy();
}
private void startScanning() {
proximityManager.connect(new OnServiceReadyListener() {
@Override
public void onServiceReady() {
proximityManager.startScanning();
}
});
}
private EddystoneListener createEddystoneListener() {
return new SimpleEddystoneListener() {
@Override
public void onEddystoneDiscovered(IEddystoneDevice eddystone, IEddystoneNamespace namespace) {
beaconsList.add(eddystone.getUniqueId());
setAdapter();
}
@Override
public void onEddystoneLost(IEddystoneDevice eddystone, IEddystoneNamespace namespace) {
beaconsList.remove(eddystone.getUniqueId());
setAdapter();
}
};
}
}
und der Code von CustomListAdapter:
public class CustomListAdapter extends BaseAdapter {
private List<String> beaconsList;
private Activity activity;
private LayoutInflater inflater;
public CustomListAdapter(Activity activity, List<String> beaconsList) {
this.activity = activity;
this.beaconsList = beaconsList;
}
@Override
public int getCount() {
return beaconsList.size();
}
@Override
public Object getItem(int location) {
return beaconsList.get(location);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (inflater == null)
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null)
convertView = inflater.inflate(R.layout.custom_row, null);
String singleBeaconItem = String.valueOf(getItem(position));
TextView beaconText = (TextView) convertView.findViewById(R.id.BeaconText);
ImageView beaconImage = (ImageView) convertView.findViewById(R.id.BeaconImage);
beaconText.setText(singleBeaconItem);
beaconImage.setImageResource(R.drawable.tough_beacon_1);
return convertView;
}
}
Im Idealfall, wenn ich die Taste drücken, die in der Nähe Baken als Liste erschienen sein sollte, und wenn eine Bake entdeckt oder verloren die Liste sollte automatisch aktualisiert werden. 02: 15,276 2559-2559/com.example.panagiotis
Stapelüberwachung in LogCat
--------- Anfang 08-06 17 Crash EDITED. beaconsproject E/AndroidRuntime: FATALE AUSNAHME: main Prozess: com.example.panagiotis.beaconsproject, PID: 2559 java.lang.RuntimeException: Aktivität konnte nicht gestartet werden ComponentInfo {com.example.panagiotis.beaconsproject/com.example.panagiotis. beaconsproject.MonitoringBeacons}: java.lang.NullPointerException: Versuch zum Aufruf virtuelle Methode 'void android.widget.ListView.setOnItemClickListener (android.widget.AdapterView $ OnItemClickListener)' für eine Nullobjekt-Referenz bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2416) bei android.app.ActivityThread. handleLaunchActivity (ActivityThread.java:2476) bei android.app.ActivityThread.-wrap11 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1344) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java:5417) at java.lang.reflect.Method.invoke (Native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616) Verursacht von: java.lang.NullPointerException: Versuch, virtuelle Methode 'void android.widget.ListView.setOnItemClickListener (android.widget.AdapterView $ OnItemClickListener)' auf einem Nullobjekt Referenz bei com.example aufzurufen .panagiotis.beaconsproject.MonitoringBeacons.onCreate (MonitoringBeacons.java:44) bei android.app.Activity.performCreate (Activity.java:6237) bei android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1107) bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2369) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) bei android.app.ActivityThread.-wrap11 (ActivityThread.java) bei Android .app.ActivityThread $ H.handleMessage (ActivityThread.java:1344) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:148) bei Android .app.ActivityThread.main (ActivityThread.java:5417) bei java.lang.reflect.Method.invoke (systemeigene Methode) bei com.android.internal.os.ZygoteInit $ M ethodAndArgsCaller.run (ZygoteInit.java:726) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616) 08-06 17: 02: 18.087 2559-2559/com.beispiel.panagiotis.beaconproject I/Prozess: Signal senden. PID: 2559 SIG: 9 08-06 17: 02: 22.298 3433-3433/com.beispiel.panagiotis.beaconsproject W/System: ClassLoader referenziert unbekannten Pfad: /data/app/com.example.panagiotis.beaconsproject-1/ lib/x86 08-06 17: 02: 22.455 3433-3433/com.beispiel.panagiotis.beaconsproject W/System: ClassLoader referenziert unbekannten Pfad: /data/app/com.example.panagiotis.beaconsproject-1/lib/x86 08-06 17: 02: 22.604 3433-3433/com.beispiel.panagiotis.beaconsproject W/art: Vor Android 4.1, Methode android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter (android.graphics. PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff $ Mode) hätte die Methode package-private in android.graphics.drawable.Drawable falsch überschrieben 08-06 17: 02: 22.715 3433-3460/com. example.panagiotis.beaconsproject D/OpenGLRenderer: Verwenden Sie E GL_SWAP_BEHAVIOR_PRESERVED: true
[08-06 17: 02: 22,718 3433: 3433 D /] HostConnection :: get() Neue Host-Verbindung 0xaa9a71c0 gegründet, tid 3433
[08-06 17: 02: 22,754 3433: 3460 D /] HostConnection :: get() Neue Hostverbindung hergestellt 0xaa9a6920, tid 3460 08-06 17: 02: 22.768 3433-3460/com.beispiel.panagiotis.beaconsproject I/OpenGLRenderer: Initialisierte EGL, Version 1.4 08-06 17: 02: 24.070 3433-3460/com.beispiel.panagiotis.beaconproject E/Oberfläche: getSlotFromBufferLocked: unbekannter Puffer: 0xaa9b17f0 08-06 17: 02: 26.685 3433-3433/com.example.panagiotis.beaconsproject W/ViewRootImpl: Ereignis wegen keinem Fensterfokus abbrechen: Bewegung Ereignis {action = ACTION_CANCEL, actionButton = 0, ID [0] = 0, x [0] = 397.5, y [0] = 956.6797, toolType [0] = TOOL_TYPE_FINGER, buttonState = 0, metaState = 0, Flags = 0x0, edgeFlags = 0x0, pointerCount = 1, historySize = 0, eventTime = 70853, downTime = 67680, deviceId = 0, source = 0x1002} 08-06 17: 02: 26.685 3433-3433/com.beispiel.panagiotis.beaconsproject W/ViewRootImpl: Ereignis wegen keinem Fensterfokus abbrechen: MotionEvent {action = ACTION_CANCEL, actionButton = 0, id [0] = 0, x [0] = 397.5, y [0] = 956.6797, toolType [0] = TOOL_TYPE_FINGER, buttonState = 0, metaState = 0, Flags = 0x0, edgeFlags = 0x0, pointerCount = 1, historySize = 0, eventTime = 70853, downTime = 67680, deviceId = 0, source = 0x1002} 08-06 17: 02: 26.686 3433-3433 /com.example.panagiotis.beaconsproject W/ViewRootImpl: Ereignis wegen keinem Fensterfokus abbrechen: MotionEvent {action = ACTION_CANCEL, actionButton = 0, id [0] = 0, x [0] = 397.5, y [0] = 956.6797 , toolType [0] = TOOL_TYPE_FINGER, buttonState = 0, metaState = 0, Flags = 0x0, edgeFlags = 0x0, pointerCount = 1, historySize = 0, eventTime = 70853, downTime = 67680, deviceId = 0, source = 0x1002} 08-06 17: 02: 26.686 3433-3433/com.beispiel.panagiotis.beaconsproject W/ViewRootImpl : Ereignis wegen keinem Fensterfokus abbrechen: MotionEvent {action = ACTION_CANCEL, actionButton = 0, id [0] = 0, x [0] = 397.5, y [0] = 956.6797, toolType [0] = TOOL_TYPE_FINGER, buttonState = 0 , metastate = 0, flags = 0x0, edgeFlags = 0x0, pointerCount = 1, historySize = 0, eventTime = 70853, downTime = 67680, deviceId = 0, source = 0x1002} 08-06 17: 02: 28.817 3433-3460/com.example.panagiotis.beaconsproject E/Surface: getSlotFromBufferLocked: Unbekannter Puffer: 0xaa9b17f0 08-06 17: 02: 29.373 3433-3460/com.beispiel.panagiotis.beaconsproject E/Surface: getSlotFromBufferLocked: unbekannter Puffer: 0xb40938f0 08- 06 17: 02: 29.375 3433-3460/com.beispiel.panagiotis.beaconsproject D/OpenGLRenderer: endAllStagingAnimators auf 0xa1d53580 (Rip pleDrawable) mit Handle 0xa203f910 08-06 17: 02: 30.806 3433-3460/com.beispiel.panagiotis.beaconsproject E/Oberfläche: getSlotFromBufferLocked: unbekannter Puffer: 0xb4094e60 08-06 17: 02: 32.811 3433-3460/com. example.panagiotis.beaconsproject E/Oberfläche: getSlotFromBufferLocked: unbekannter Puffer: 0xb40938f0 08-06 17: 02: 35.874 3433-3433/com.beispiel.panagiotis.beaconsproject D/AndroidRuntime: Herunterfahren der VM 08-06 17:02: 35.874 3433-3433/com.beispiel.panagiotis.beaconsproject E/AndroidRuntime: FATALE AUSNAHME: Haupt Prozess: com.example.panagiotis.beaconsproject, PID: 3433 java.lang.RuntimeException: Aktivität kann nicht gestartet werden ComponentInfo {com.example.panagiotis.beaconsproject/com.example.panagiotis.beaconsproject.MonitoringBeacons}: java.lang.NullPointerException: Versuch, virtuelle Methode 'void aufzurufen android.widget.ListView.setOnItemClickListener (android.widget.AdapterView $ OnItemClickListener) 'auf einem Nullobjekt Referenz bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2416) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread. Java: 2476) bei android.app.ActivityThread.-wrap11 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1344) bei andro id.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java:5417) bei java. lang.reflect.Method.invoke (Native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java : 616) Verursacht von: java.lang.NullPointerException: Versuch, die virtuelle Methode 'void android.widget.ListView.setOnItemClickListener (android.widget.AdapterView $ OnItemClickListener)' für eine Nullobjekt-Referenz bei com.example.panagiotis aufzurufen. beaconsproject.MonitoringBeacons.onCreate (M onitoringBeacons.java:44) bei android.app.Activity.performCreate (Activity.java:6237) bei android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1107) bei android.app.ActivityThread.performLaunchActivity (ActivityThread. java: 2369) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) bei android.app.ActivityThread.-wrap11 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java : 1344) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java:5417) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java : 726) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616) 08-06 17: 02: 39.204 3433-3433/com.beispiel.panagiotis.beaconsproject I/Prozess: Sendesignal. PID: 3433 SIG: 9
Irgendeine Idee?
Es sollte eine Stapelverfolgung in LogCat sein, wenn die App abstürzt. Kannst du das zu deiner Frage hinzufügen? – davidgyoung
@davidgyoung ich habe es hinzugefügt. –