모니터링이라는 버튼이있는 mainActivity가 있습니다. 버튼을 누르면 근처의 표지가 나타납니다. 버튼을 누르면 응용 프로그램이 작동하지 않는다는 오류 메시지가 나타납니다.ListAdapter가 작동하지 않습니다.
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();
}
};
}
}
및 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;
}
}
나는 근처의 비콘 목록으로 출연한다 버튼을 누를 때 이상적으로 비콘이 때 다음 버튼 활동의 코드는 자동으로 업데이트되어야하는 목록을 발견하거나 잃었습니다. 02 :
는 --------- 로그 캣
에 충돌 의 시작 08-06 (17)
스택 추적 편집 15.276 2559년에서 2559년까지/com.example.panagiotis합니다. beaconsproject E/AndroidRuntime : 치명적인 예외 : 주 프로세스 : com.example.panagiotis.beaconsproject, PID : 2559 java.lang.RuntimeException : 활동을 시작할 수 없습니다. ComponentInfo {com.example.panagiotis.beaconsproject/com.example.panagiotis. beaconsproject.MonitoringBeacons} : java.lang.NullPointerException : 호출을 시도합니다. 가상 메소드 'null void reference android.app.ActivityThread에서 android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2416) 의 null 객체 참조에 대한'android.widget.ListView.setOnItemClickListener (android.widget.AdapterView $ OnItemClickListener) '를 호출하십시오. android.os.Handler.dispatchMessage에서 android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1344) 에서 android.app.ActivityThread.-wrap11에서 handleLaunchActivity (ActivityThread.java:2476) (ActivityThread.java) (Handler.java:102) android.os.Looper.loop (Looper.java:148) android.app.ActivityThread.main (ActivityThread.java:5417) (네이티브 메소드) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main (java.lang.reflect.Method.invoke) ZygoteInit.java:616) 에 의해 발생 : java.lang.NullPointerException : 널 객체 참조에 대한 가상 메소드 'void android.widget.ListOutlook.setOnItemClickListener (android.widget.AdapterView $ OnItemClickListener)'호출 시도 at com.example .panagiotis.beaconsproject.MonitoringBeacons.onCreate (MonitoringBeacons.java:44) android.app.Activity.performCreate (Activity.java:6237)에서 android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1107)로이드에서 android.app.ActivityThread.-wrap11에서 android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) 에서 android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2369) (ActivityThread.java) 에 3,691,363,210 .app.ActivityThread $ H.handleMessage (ActivityThread.java:1344) android.os.Handler.dispatchMessage (Handler.java:102)에서 at android.os.Looper.loop (Looper.java:148) at android .app.ActivityThread.main (ActivityThread.java:5417) at java.lang.reflect.Method.invoke (기본 메소드) at com.android.internal.os.ZygoteInit $ M ethodAndArgsCaller.실행 (ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616) 08-06 17 : 02 : 18.087 2559-2559/com.example.panagiotis.beaconsproject I/프로세스 : 신호를 보냅니다. PID : 2559 SIG : 9 08-06 17 : 02 : 22.298 3433-3433/com.example.panagiotis.beaconsproject W/System : 알 수없는 경로로 참조 된 ClassLoader : /data/app/com.example.panagiotis.beaconsproject-1/ lib/x86 08-06 17 : 02 : 22.455 3433-3433/com.example.panagiotis.beaconsproject W/System : 알 수없는 경로로 참조 된 ClassLoader : /data/app/com.example.panagiotis.beaconsproject-1/lib/x86 08-06 17 : 02 : 22.604 3433-3433/com.example.panagiotis.beaconsproject W/art : Android 4.1 이전 버전에서 메소드 android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter (android.graphics. PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff $ Mode)는 android.graphics.drawable.Drawable 08-06 17 : 02 : 22.715 3433-3460/com의 package-private 메소드를 잘못 재정의했습니다. 예제 .panagiotis.beaconsproject D/OpenGLRenderer : Use E GL_SWAP_BEHAVIOR_PRESERVED : 사실
[08-06 17 : 02 : 22.718 3433 : 3433 D /] HostConnection : 수() 새로운 호스트 연결 0xaa9a71c0 설립, TID 3433
[08-06 17 : 02 : 22.754 3433 : 3460 D /] HostConnection :: get() 새 호스트 연결이 설정 됨 0xaa9a6920, tid 3460 08-06 17 : 02 : 22.768 3433-3460/com.example.panagiotis.beaconsproject I/OpenGLRenderer : 초기화 된 EGL, 버전 1.4 08-06 17 : 02 : 24.070 3433-3460/com.example.panagiotis.beaconsproject E/Surface : getSlotFromBufferLocked : 알 수없는 버퍼 : 0xaa9b17f0 08-06 17 : 02 : 26.685 3433-3433/com.example.panagiotis.beaconsproject W/ViewRootImpl : 창 포커스가 없어서 이벤트 취소 : 모션 이벤트 타입 {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.example.panagiotis.beaconsproject W/ViewRootImpl : 윈도우 포커스가 없기 때문에 이벤트 취소 : 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 : 창 포커스가 없어서 이벤트 취소 : 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 : 윈도우 포커스가 없기 때문에 이벤트 취소 : 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 : 알 수없는 버퍼 : 0xaa9b17f0 08-06 17 : 02 : 29.373 3433-3460/com.example.panagiotis.beaconsproject E/Surface : getSlotFromBufferLocked : 알 수없는 버퍼 : 0xb40938f0 08- 06 17 : 02 : 29.375 3433-3460/com.example.panagiotis.beaconsproject D/OpenGLRenderer : endAllStagingAnimators on 0xa1d53580 (Rip pleDrawable) 0xa203f910 08-06 17 : 02 : 30.806 3433-3460/com.example.panagiotis.beaconsproject E/Surface : getSlotFromBufferLocked : 알 수없는 버퍼 : 0xb4094e60 08-06 17 : 02 : 32.811 3433-3460/com. example.panagiotis.beaconsproject E/Surface : getSlotFromBufferLocked : 알 수없는 버퍼 : 0xb40938f0 08-06 17 : 02 : 35.874 3433-3433/com.example.panagiotis.beaconsproject D/AndroidRuntime : VM 종료 중 08-06 17:02 : 35.874 3433-3433/com.example.panagiotis.beaconsproject E/AndroidRuntime : 치명적인 예외 : 주 프로세스 : com.example.panagiotis.beaconsproject, PID : 3433 java.lang.RuntimeException : 활동을 시작할 수 없습니다. ComponentInfo {com.example.panagiotis.beaconsproject/com.example.panagiotis.beaconsproject.MonitoringBeacons} : java.lang.NullPointerException : 가상 메소드 'void를 호출하려고합니다. android.app.ActivityThread.handleLaunchActivity (ActivityThread에서 android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2416) 에서 널 객체 참조 에 android.widget.ListView.setOnItemClickListener (android.widget.AdapterView $ OnItemClickListener) '. java : 2476) android.app.ActivityThread.-wrap11 (ActivityThread.java) android.app.ActivityThread에서 $ H.handleMessage (ActivityThread.java:1344) andro에서 id.os.Handler.dispatchMessage (Handler.java:102) (android.os.Looper.loop (Looper.java:148) android.app.ActivityThread.main (ActivityThread.java:5417) at java. com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) 에서 lang.reflect.Method.invoke : 616) 원인 : java.lang.NullPointerException : com.example.panagiotis의 null 객체 참조 에서 'android.widget.ListView.setOnItemClickListener (android.widget.AdapterView $ OnItemClickListener)'가상 메소드를 호출하려고 시도했습니다. beaconsproject.MonitoringBeacons.onCreate (M onitoringBeacons.java:44) android.app.Activity.performCreate (Activity.java:6237) android.app.ActivityThread.performLaunchActivity에서 android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1107) 에서 (ActivityThread에서 . 자바 : 2369) android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476에서 ) android.app.ActivityThread.-wrap11 android.app.ActivityThread $ H.handleMessage에서 (ActivityThread.java) 에서 (ActivityThread.java : 1344) android.os.Handler.dispatchMessage (Handler.java:102)에서 android.os.Looper.loop (Looper.java:148) android.app.ActivityThread.main (ActivityThread.java:5417) at java.lang.reflect.Method.invoke (기본 메소드) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java : 726) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616) 08-06 17 : 02 : 39.204 3433-3433/com.example.panagiotis.beaconsproject I/Process : 보내는 신호. PID : 3433 SIG : 9
아이디어가 있으십니까?
응용 프로그램이 충돌하면 LogCat에 스택 추적이 있어야합니다. 이 질문을 귀하의 질문에 추가 할 수 있습니까? – davidgyoung
@davidgyoung 나는 그것을 더했다. –