title: DEBUG Build fingerprint crash !
body: <p>When I try to start a Bluetooth socket, I receive this, and my android application crash without error log :</p>
  
  <pre><code>05-20 09:59:07.790 E/BluetoothConnectionService  (3162): socket connect failed
  
  05-20 09:59:07.790 I/BluetoothConnectionService  (3162): close socket
  
  05-20 09:59:07.800 I/DEBUG   ( 1064): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
  
  05-20 09:59:07.800 I/DEBUG   ( 1064): Build fingerprint: 'SEMC/X10i_1237-0688/X10i/es209ra:2.1-update1/2.1.A.0.435/TP7d:user/release-keys'
  
  05-20 09:59:07.800 I/DEBUG   ( 1064): pid: 3605, tid: 3605  &gt;&gt;&gt; com.secu4.s4b &lt;&lt;&lt;
  
  05-20 09:59:07.800 I/DEBUG   ( 1064): signal 11 (SIGSEGV), fault addr deadbaad
  
  05-20 09:59:07.800 I/DEBUG   ( 1064):  r0 00000000  r1 afe13359  r2 00000027  r3 00000054
  
  05-20 09:59:07.800 I/DEBUG   ( 1064):  r4 afe3ae08  r5 00000000  r6 00000000  r7 0000a000
  
  05-20 09:59:07.800 I/DEBUG   ( 1064):  r8 beb8c998  r9 41873cf8  10 41873ce0  fp 00000000
  
  05-20 09:59:07.800 I/DEBUG   ( 1064):  ip 00002ee0  sp beb8c928  lr deadbaad  pc afe10a14  cpsr 68000030
  
  05-20 09:59:07.830 D/GpsLocationProvider( 1143): updateNetworkState available info: NetworkInfo: type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: (none), roaming: false, failover: false, isAvailable: true
  
  05-20 09:59:07.850 V/AutoSyncService( 1595): onCreate()
  
  05-20 09:59:07.920 I/GTalkService( 1286): [ServiceAutoStarter] --- start GTalk service ---
  
  05-20 09:59:07.950 I/MediaUploader( 1446): No need to wake up
  
  05-20 09:59:08.000 V/AutoSyncService( 1595): onStart(): action_auto_sync_event[3]
  
  05-20 09:59:08.010 V/AutoSyncService( 1595): onDestroy()
  
  05-20 09:59:08.150 I/DEBUG   ( 1064):          #00  pc 00010a14  /system/lib/libc.so
  
  05-20 09:59:08.150 I/DEBUG   ( 1064):          #01  pc 0000b342  /system/lib/libc.so
  
  05-20 09:59:08.160 I/DEBUG   ( 1064):          #02  pc 000060ba  /system/lib/libcutils.so
  
  05-20 09:59:08.180 I/DEBUG   ( 1064):          #03  pc 00051a0a  /system/lib/libandroid_runtime.so
  
  05-20 09:59:08.190 I/DEBUG   ( 1064):          #04  pc 0000edb4  /system/lib/libdvm.so
  
  05-20 09:59:08.190 I/DEBUG   ( 1064):          #05  pc 00038938  /system/lib/libdvm.so
  
  05-20 09:59:08.190 I/DEBUG   ( 1064):          #06  pc 00013ab8  /system/lib/libdvm.so
  
  05-20 09:59:08.190 I/DEBUG   ( 1064):          #07  pc 00019438  /system/lib/libdvm.so
  
  05-20 09:59:08.200 I/DEBUG   ( 1064):          #08  pc 00018904  /system/lib/libdvm.so
  
  05-20 09:59:08.200 I/DEBUG   ( 1064):          #09  pc 0004f0c2  /system/lib/libdvm.so
  
  05-20 09:59:08.200 I/DEBUG   ( 1064):          #10  pc 000572f0  /system/lib/libdvm.so
  
  05-20 09:59:08.200 I/DEBUG   ( 1064):          #11  pc 00013ab8  /system/lib/libdvm.so
  
  05-20 09:59:08.200 I/DEBUG   ( 1064):          #12  pc 00019438  /system/lib/libdvm.so
  
  05-20 09:59:08.200 I/DEBUG   ( 1064):          #13  pc 00018904  /system/lib/libdvm.so
  
  05-20 09:59:08.200 I/DEBUG   ( 1064):          #14  pc 0004f3ec  /system/lib/libdvm.so
  
  05-20 09:59:08.200 I/DEBUG   ( 1064):          #15  pc 0003b0be  /system/lib/libdvm.so
  
  05-20 09:59:08.200 I/DEBUG   ( 1064):          #16  pc 00028b68  /system/lib/libandroid_runtime.so
  
  05-20 09:59:08.210 I/DEBUG   ( 1064):          #17  pc 000298d4  /system/lib/libandroid_runtime.so
  
  05-20 09:59:08.210 I/DEBUG   ( 1064):          #18  pc 00008cd8  /system/bin/app_process
  
  05-20 09:59:08.210 I/DEBUG   ( 1064):          #19  pc 0000c238  /system/lib/libc.so
  
  05-20 09:59:08.210 I/DEBUG   ( 1064): 
  
  05-20 09:59:08.210 I/DEBUG   ( 1064): code around pc:
  
  05-20 09:59:08.210 I/DEBUG   ( 1064): afe10a04 f8442001 4798000c e054f8df 26002227 
  
  05-20 09:59:08.210 I/DEBUG   ( 1064): afe10a14 2000f88e ef3af7fb f7fd2106 f04fe818 
  
  05-20 09:59:08.210 I/DEBUG   ( 1064): 
  
  05-20 09:59:08.210 I/DEBUG   ( 1064): code around lr:
  
  05-20 09:59:08.210 I/DEBUG   ( 1064): deadba9c ffffffff ffffffff ffffffff ffffffff 
  
  05-20 09:59:08.210 I/DEBUG   ( 1064): deadbaac ffffffff ffffffff ffffffff ffffffff 
  
  05-20 09:59:08.210 I/DEBUG   ( 1064): deadbabc ffffffff ffffffff ffffffff ffffffff 
  
  05-20 09:59:08.210 I/DEBUG   ( 1064): 
  
  05-20 09:59:08.210 I/DEBUG   ( 1064): stack:
  
  05-20 09:59:08.210 I/DEBUG   ( 1064):     beb8c8e8  00000015  
  
  05-20 09:59:08.210 I/DEBUG   ( 1064):     beb8c8ec  afe13389  /system/lib/libc.so
  
  05-20 09:59:08.210 I/DEBUG   ( 1064):     beb8c8f0  afe3b02c  /system/lib/libc.so
  
  05-20 09:59:08.210 I/DEBUG   ( 1064):     beb8c8f4  afe3afd8  /system/lib/libc.so
  
  05-20 09:59:08.210 I/DEBUG   ( 1064):     beb8c8f8  00000000  
  
  05-20 09:59:08.210 I/DEBUG   ( 1064):     beb8c8fc  afe143a3  /system/lib/libc.so
  
  05-20 09:59:08.260 D/dalvikvm( 1416): GC freed 1639 objects / 375144 bytes in 290ms
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c900  afe13359  /system/lib/libc.so
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c904  afe13359  /system/lib/libc.so
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c908  00000054  
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c90c  afe3ae08  /system/lib/libc.so
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c910  00000000  
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c914  beb8c93c  [stack]
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c918  0000a000  [heap]
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c91c  afe135fb  /system/lib/libc.so
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c920  df002777  
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c924  e3a070ad  
  
  05-20 09:59:08.260 I/DEBUG   ( 1064): #00 beb8c928  afe3db7c  
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c92c  afe0f130  /system/lib/libc.so
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c930  afe3ae08  /system/lib/libc.so
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c934  00000000  
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c938  00126968  [heap]
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c93c  fffffbdf  
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c940  afe3ae08  /system/lib/libc.so
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c944  afe3d9c4  
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c948  00126968  [heap]
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c94c  afe0b347  /system/lib/libc.so
  
  05-20 09:59:08.260 I/DEBUG   ( 1064): #01 beb8c950  beb8c967  [stack]
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c954  afe1fcb7  /system/lib/libc.so
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c958  00002bbc  
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c95c  afb06077  /system/lib/libcutils.so
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c960  beb8c97c  [stack]
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c964  00126968  [heap]
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c968  00000000  
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c96c  41873cf4  
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c970  41873d00  
  
  05-20 09:59:08.260 I/DEBUG   ( 1064):     beb8c974  afb060bd  /system/lib/libcutils.so
  
  05-20 09:59:08.490 D/dalvikvm( 3460): GC freed 14516 objects / 523568 bytes in 75ms
  
  05-20 09:59:08.870 W/GTalkService( 1286): [GTalkConnection.15] doConnect: caught Could not connect to mtalk.google.com:5228.: (404)
  
  05-20 09:59:08.870 W/GTalkService( 1286):   -- caused by: java.net.UnknownHostException: mtalk.google.com
  
  05-20 09:59:08.960 D/Zygote  ( 1066): Process 3605 terminated by signal (11)
  
  05-20 09:59:09.080 D/dalvikvm( 1143): GC freed 41717 objects / 2111424 bytes in 117ms
  
  05-20 09:59:09.080 I/WindowManager( 1143): WIN DEATH: Window{45f45758 com.secu4.s4b/com.secu4.s4b.Welcome paused=false}
  
  05-20 09:59:09.110 I/ActivityManager( 1143): Process com.secu4.s4b (pid 3605) has died.
  
  05-20 09:59:09.110 W/ActivityManager( 1143): Scheduling restart of crashed service com.secu4.s4b/.provider.ProtectionService in 5000ms
  
  05-20 09:59:09.110 I/UsageStats( 1143): Unexpected resume of com.fede.launcher while already resumed in com.secu4.s4b
  
  05-20 09:59:09.150 D/ViewFlipper( 1316): updateRunning() mVisible=true, mStarted=true, mUserPresent=true, mRunning=true
  
  05-20 09:59:09.160 W/InputManagerService( 1143): Got RemoteException sending setActive(false) notification to pid 3605 uid 10019
  
  05-20 09:59:09.230 I/global  ( 1248): Default buffer size used in BufferedInputStream constructor. It would be better to be explicit if an 8k buffer is required.
  
  05-20 09:59:09.310 D/dalvikvm( 1623): GC freed 3025 objects / 334128 bytes in 117ms
  
  05-20 09:59:09.370 D/dalvikvm( 1623): GC freed 2848 objects / 343280 bytes in 30ms
  
  05-20 09:59:09.370 I/dalvikvm-heap( 1623): Grow heap (frag case) to 4.684MB for 236626-byte allocation
  
  05-20 09:59:09.410 D/dalvikvm( 1623): GC freed 0 objects / 0 bytes in 39ms
  
  05-20 09:59:09.460 D/dalvikvm( 1623): GC freed 2219 objects / 290192 bytes in 30ms
  </code></pre>
  
  <p>Any idea ?</p>
  
  <p>Thanks in advance !</p>
  
  <p>EDIT :</p>
  
  <p>In my manifest I have :</p>
  
  <pre><code>&lt;uses-permission android:name="android.permission.BLUETOOTH"/&gt;
  &lt;uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/&gt;
  </code></pre>
  
  <p>For the bluetooth connection, I first search for devices :</p>
  
  <pre><code>private void searchBWD() {
      Log.w(TAG,"SEARCH : "+search);
      if(search &gt; Globals.MAX_SEARCH){
          stop = true;
          showCloseDialog(true);
          pwrOnLabel.setText(R.string.lbl_power_on2);
          isSearching = false;
      }else if(!stop){
          if(!controller.isDeviceStored()) {
              search++;
              if(D) Log.d(TAG, "start search BWD devices");
  
              showProgressDialog();
              pwrOnLabel.setText(R.string.msg_scanning_bwd);
  
              mNewDevices = new ArrayList&lt;String&gt;();
  
              try{
                  // If we're already discovering, stop it
                  if (mBluetoothAdapter.isDiscovering()) {
                      mBluetoothAdapter.cancelDiscovery();
                  }
                  // Request discover from BluetoothAdapter
                  mBluetoothAdapter.startDiscovery();
              }catch (Exception e) {
                  e.printStackTrace();
              }
          }else connectionStart();
      }
  }
  </code></pre>
  
  <p>And compare if it's the device I am looking for, if it's I stop the search and start the connection :</p>
  
  <pre><code>private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
      @Override
      public void onReceive(Context context, Intent intent){
          String action = intent.getAction();
  
          if(D) Log.v(TAG, "onReceive action:"+action);
  
          // When discovery finds a device
          if (BluetoothDevice.ACTION_FOUND.equals(action)){
              // Get the BluetoothDevice object from the Intent
              BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
              if (D) Log.d(TAG, "deviceFound :" + device.getName() + "[" + device.getAddress() + "]");
              mNewDevices.add(device.getAddress());
              // If the founded device is the BWD, stop discovering
              if (device.getName() != null){
                  if(device.getName().toUpperCase().startsWith(Globals.REMOTEBTNAME.toUpperCase()) 
                          | device.getName().toUpperCase().startsWith(Globals.REMOTEBTNAME2.toUpperCase())) {
                      mBluetoothAdapter.cancelDiscovery();
                  }
              }
  
              // When discovery is finished, change the Activity title
          } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
              if (D) Log.i(TAG, "scanCompleted:" + mNewDevices.size());
              hideProgressDialog();
  
              // Look for the bluetooth address of the S4B(s)
              int nbBWGDiscovered = 0;
              BluetoothDevice device;
              String bBWDAddress = "";
              for (int i = 0; i &lt; mNewDevices.size(); i++) {
                  device = mBluetoothAdapter.getRemoteDevice(mNewDevices.get(i));
                  try {
                      if (D) Log.d(TAG, "Found device name:" + device.getName() + ", address:" + device.getAddress());
  
                      if (device.getName() != null){
                          if(device.getName().toUpperCase().startsWith(Globals.REMOTEBTNAME.toUpperCase()) 
                                  | device.getName().toUpperCase().startsWith(Globals.REMOTEBTNAME2.toUpperCase())) {
                              nbBWGDiscovered++;
                              bBWDAddress = device.getAddress();
                          }
                      }
                  } catch (Exception e) {
                      e.printStackTrace();
                  }
              }
              if (D) Log.d(TAG, "nbBWGDiscovered =" + nbBWGDiscovered);
  
              switch (nbBWGDiscovered) {
              case 0:
                  // error, 0 bwg found
                  searchBWD();
                  break;
  
              case 1:                 
                  storeBWGDevice(bBWDAddress, true);
                  connectionStart();
                  break;
  
              default:
                  // to many bwg found to localize yours
                  searchBWD();
                  break;
              }
          } else if(ACTION_CONNECTED.equals(action)) {   ........
  </code></pre>
  
  <p>Here is the connection process :</p>
  
  <pre><code>public void connectionStart() {
      if(!stop){
          if(D) Log.d(TAG, " X===&gt; connectionStart to:"+ controller.getDeviceAddress());
          showProgressDialog();
          pwrOnLabel.setText(R.string.alert_device_found);
  
          Runnable reConnect = new Runnable() {
              public void run() {
                  Utils.pause(200);
  
                  protectionService.putExtra(DEVICE_ADDRESS, controller.getDeviceAddress());
                  Welcome.this.startService(protectionService);
              }
          };
          Thread thread = new Thread(null, reConnect, "ConnectToBWD");
          thread.start();     
      }
  }
  </code></pre>
  
  <p>Here is the 'ConnectThread' process where I try to open a bluetooth socket with my device :</p>
  
  <pre><code>private class ConnectThread extends Thread {        
      private final BluetoothSocket mmSocket;
      private final BluetoothDevice mmDevice;
  
      public ConnectThread(BluetoothDevice device) {
          if(D) Log.d(TAG, "start connectThread ");
          mmDevice = device;
          BluetoothSocket connection = null;
  
  
          // Get a BluetoothSocket for a connection with the
          // given BluetoothDevice
          try {
               //connection = device.createRfcommSocketToServiceRecord(MY_UUID);
              if(D) Log.i(TAG,"Create RF Socket");
              Method m = device.getClass().getMethod("createRfcommSocket", new Class[] { int.class });
              connection = (BluetoothSocket) m.invoke(device, 1);
              Utils.pause(100);
          } catch (Exception e) {
              Log.e(TAG, "create() failed", e);
          }
          mmSocket = connection;
          if(D) Log.i(TAG,"Socket initialized");
      }
  
      public void run() {
          if(D) Log.i(TAG, "BEGIN mConnectThread");
          setName("ConnectThread");
  
          if (mmSocket != null) {
              // Always cancel discovery because it will slow down a connection
              if (mAdapter.isDiscovering()){
                  mAdapter.cancelDiscovery();
                  if(D) Log.i(TAG,"cancel discovering before connect");
              }
  
              // Make a connection to the BluetoothSocket
              try {
                  // This is a blocking call and will only return on a
                  // successful connection or an exception
                  if(D) Log.i(TAG,"Start socket connection");
                  mmSocket.connect();
                  if(D) Log.i(TAG,"End of socket connection");
              } catch (Exception e) {
                  Log.e(TAG, "socket connect failed", e);
                  // Close the socket
                  try {
                      mmSocket.close();
                      if(D) Log.i(TAG,"close socket");
  
                  } catch (IOException e2) {
                      Log.e(TAG,"unable to close() socket during connection failure",e2);
                  }
                  // Start the service over to restart listening mode
                  BluetoothConnectionService.this.start();
                  connectionFailed();
                  return;
              }
  
              // Reset the ConnectThread because we're done
              synchronized (BluetoothConnectionService.this) {
                  mConnectThread = null;
              }
  
              // Start the connected thread
              connected(mmSocket, mmDevice);
          } else {
              connectionFailed();
              BluetoothConnectionService.this.start();
          }
      }
  
      public void cancel() {
          try {
              if (mmSocket != null) {
                  mmSocket.close();
              }
          } catch (IOException e) {
              Log.e(TAG, "close() of connect socket failed", e);
          }
      }
  }
  </code></pre>
  
  <p>And it's here, when the open socket fail that I receive the DEBUG message after I close the socket.</p>