2016-04-05 17 views
0

Bir Bluetooth uygulaması yapmaya çalışıyorum ve ben developer.android'ten "kılavuzu" takip ediyorum, ancak her defasında uygulamaum çöküyorsaRemoteDevice'i kullanmaya çalışıyorum. Bir şey yanlış olmalı ama ne olduğunu anlayamıyorum.java.lang.RuntimeException: Arıza teslimi sonucu ResultInfo {who = null, request = 1, sonuç = -1, data = Intent {(extras var)}} etkinliğe

TribotActivity (onActivityResult sınıfı)

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_DEVICE_ADDRESS) {  // Check which request we're responding to. When doing more requests a switch case is probably a nicer way of doing this. 
     if (resultCode == RESULT_OK) { 
      connectDevice(data, true);// Make sure the request was successful 
     } else { 
      Toast.makeText(getApplicationContext(), "Failed to get MAC address from ", Toast.LENGTH_SHORT).show(); //TODO Remove this when we've successfully sent through the address 
     } 
    } 
} 

private void connectDevice(Intent data, boolean secure) { 
    // Get the device MAC address 
    String address = data.getExtras() 
      .getString(DeviceListActivity.EXTRA_DEVICE_ADDRESS); 
    // Get the BluetoothDevice object 
    BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); 
    // Attempt to connect to the device 
    mConnect.connect(device, secure); 
} 

DeviceListActivity

public static String EXTRA_DEVICE_ADDRESS = "device_address"; 

private AdapterView.OnItemClickListener mDeviceClickListener = new AdapterView.OnItemClickListener() { 
    public void onItemClick(AdapterView<?> av, View v, int arg2, long arg3) { 
     // Cancel discovery because it's costly and we're about to connect 
     mBtAdapter.cancelDiscovery(); 

     // Get the device MAC address, which is the last 17 chars in the View 
     String info = ((TextView) v).getText().toString(); 
     String address = info.substring(info.length() - 17); 

     // Create the result Intent and include the MAC address 
     Intent data = new Intent(); 
     data.putExtra(EXTRA_DEVICE_ADDRESS, address); 

     // Set result and finish(=close?) this Activity 
     setResult(RESULT_OK, data); 
     finish(); 
    } 
}; 

Benim bahis nasılsa cihaz TribotActivity göndermek almıyor olurdu. İşte mBluetoothAdapter beyanı nerede olduğunu göremiyorum benim logcat :)

Logcat

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {com.hszuyd.noodle_.testing/com.hszuyd.noodle_.testing.TribotActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.bluetooth.BluetoothDevice android.bluetooth.BluetoothAdapter.getRemoteDevice(java.lang.String)' on a null object reference 
                      at android.app.ActivityThread.deliverResults(ActivityThread.java:3733) 
                      at android.app.ActivityThread.handleSendResult(ActivityThread.java:3776) 
                      at android.app.ActivityThread.-wrap16(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1412) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:148) 
                      at android.app.ActivityThread.main(ActivityThread.java:5461) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                      at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117) 
                     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.bluetooth.BluetoothDevice android.bluetooth.BluetoothAdapter.getRemoteDevice(java.lang.String)' on a null object reference 
                      at com.hszuyd.noodle_.testing.TribotActivity.connectDevice(TribotActivity.java:93) 
                      at com.hszuyd.noodle_.testing.TribotActivity.onActivityResult(TribotActivity.java:71) 
                      at android.app.Activity.dispatchActivityResult(Activity.java:6456) 
                      at android.app.ActivityThread.deliverResults(ActivityThread.java:3729) 
                      at android.app.ActivityThread.handleSendResult(ActivityThread.java:3776)  
                      at android.app.ActivityThread.-wrap16(ActivityThread.java)  
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1412)  
                      at android.os.Handler.dispatchMessage(Handler.java:102)  
                      at android.os.Looper.loop(Looper.java:148)  
                      at android.app.ActivityThread.main(ActivityThread.java:5461)  
                      at java.lang.reflect.Method.invoke(Native Method)  
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
                      at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117)  

cevap

1

, ama yöntemini çağırmak için çalışıyor yüzden, istisna yığının göre boş görünüyor null nesnesinde getRemoteDevice().

+0

private BluetoothAdapter mBluetoothAdapter; TribotActivity içinde – Remco1250

+0

Bence, BluetoothAdapter.getDefaultAdapter(); mBluetoothAdapter için boş olmayan bir değer ayarlamak için bildirimde – Wakachopo

İlgili konular