Application android processing marche pas

Fermé
Dudule100 Messages postés 550 Date d'inscription jeudi 25 octobre 2012 Statut Membre Dernière intervention 22 janvier 2017 - Modifié par Dudule100 le 16/05/2016 à 16:29
Bonjour,

Voila, je suis en train de développer une application pour android pour diriger une caméra a distance avec le bluetooth mais j'ai un problème. Mon code est fini et bon mais processing me met toujours une erreur alors qu'il n'y en a pas (a mes yeux).

Voila mon code :

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import java.io.IOException;
import java.io.OutputStream;
import java.util.UUID;
import android.util.Log;
import apwidgets.APWidgetContainer;
import apwidgets.APButton;
import apwidgets.APWidget;
import apwidgets.OnClickWidgetListener;

public int[] bg={0,80,0};
public BluetoothDevice btShield = null;
public BluetoothSocket btSocket = null;
public OutputStream btOutputStream = null;
public APWidgetContainer widgetContainer = null;
public Connect2BtDevice ConBTdevice = new Connect2BtDevice();

// Declaration buttons
String[] buttonText = { "Haut", "Bas", "Gauche", "Droite"};
String[] sendLetter={"h","b","g","d"};
int n= buttonText.length;
int[][] buttonColour = { {255,10,10}, {10,255,10}, {10,10,255}, {0,0,0} };

APButton[] guiBtns = new APButton[n];
int gap=10;
int buttonWidth=0;
int buttonHeight=0;

// App Init (Drawing / Connection / ...)
void setup()
{
 new Thread(ConBTdevice).start(); //Init Connect Bluetooth-Slave device
 orientation(LANDSCAPE); //Make GUI (landscape mode)

 // Setup button
 widgetContainer = new APWidgetContainer(this);
 buttonWidth=((width/n)-(n*(gap/2))); //button width (depends screen width)
 buttonHeight=(height/2); //button height (depends screen height)

 // Add ALL buttons in widgetContainer.
 for(int i=0; i<n;i++)
 {
 guiBtns[i]= new APButton(((buttonWidth*i)+(gap*(i+1))), gap, buttonWidth, buttonHeight, buttonText[i]);
 widgetContainer.addWidget(guiBtns[i]);
 }
}

//Change background phone
void draw()
{
 background(bg[0],bg[1],bg[2]);
}

// Click Button
void onClickWidget(APWidget widget)
{
 String letrToSend="";

 // Identify pressed button
 for(int i= 0; i < n; i ++)
 {
 if(widget == guiBtns[i])
 {
 ConBTdevice.changeBackground(buttonColour[i][0], buttonColour[i][1], buttonColour[i][2]);
 letrToSend = sendLetter[i];
 }
 }

 /* Send the chosen letter to the Arduino/Bluetooth Shield */
 if(ConBTdevice!=null)
 {
 ConBTdevice.write(letrToSend);
 }
}



// Connect class Bluetooth/Arduino
public class Connect2BtDevice implements Runnable
{

 BluetoothAdapter btAdapter = null;
 BroadcastReceiver broadcastBtDevices = null;
 private UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

// Init Connect Bluetooth
 public Connect2BtDevice()
 {
 broadcastBtDevices = new btBroadcastReceiver();
 getBtAdapter();
 enableBtAdapter();
 discoverBtDevices();
 }

Context context;

// Register the broadcast receiver only
@Override
 public void run()
 {
    context.registerReceiver(broadcastBtDevices, new IntentFilter(BluetoothDevice.ACTION_FOUND));
 }

// Get Bluetooth adapter
 void getBtAdapter()
 {
 btAdapter = BluetoothAdapter.getDefaultAdapter();
 }

// Enable Bluetooth
 void enableBtAdapter()
 {
 if (!btAdapter.isEnabled())
 {
 btAdapter.enable();
 }
 }


// Discover other Bluetooth devices
 void discoverBtDevices()
 {
 while(!btAdapter.isEnabled())
 {
 //Wait (Bluetooth Adapter is enabled)
 }
 if (!btAdapter.isDiscovering())
 {
 btAdapter.startDiscovery();
 }
 }

// Connection
 void connect2Bt()
 {
 try
 {
 btSocket = btShield.createRfcommSocketToServiceRecord(uuid);
 changeBackground(255,255,0); //YELLOW Background
 try
 {
 btSocket.connect();
 while(btSocket == null)
 {
 //Nothing
 }
 try
 {
 btOutputStream = btSocket.getOutputStream();
 changeBackground(0,255,0); //Green Background (Successful connection)
 }
 catch (IOException e)
 {
 Log.e("ConnectToBluetooth", "Error when getting output Stream");
 }
 }catch(IOException e)
 {
 Log.e("ConnectToBluetooth", "Error with Socket Connection");
 changeBackground(255,0,0); //Red background
 }
 }catch(IOException e)
 {
 Log.e("ConnectToBluetooth", "Error with Socket Creation");
 changeBackground(255,0,0); //Red background
 try
 {
 btSocket.close(); //try to close the socket
 }
 catch(IOException closeException)
 {
 Log.e("ConnectToBluetooth", "Error Closing socket");
 }return;
 }
 }

// Write string
 public void write(String str)
 {
 try
 {
 btOutputStream.write(stringToBytes(str));
 }
 catch (IOException e)
 { 
 Log.e("Writing to Stream", "Error when writing to btOutputStream");
 }
 }

 public byte[] stringToBytes(String str)
 {
 char[] buffer = str.toCharArray();
 byte[] b = new byte[buffer.length << 1];
 for(int i = 0; i < buffer.length; i++)
 {
 int bpos = i << 1;
 b[bpos] = (byte) ((buffer[i]&0xFF00)>>8);
 b[bpos + 1] = (byte) (buffer[i]&0x00FF);
 }
 return b;
 }

// Cancel / called to close the Bluetooth Socket
 public void cancel()
 {
 try
 {
 btSocket.close();
 }
 catch (IOException e)
 {
 }
 }

 void changeBackground(int bg0, int bg1, int bg2)
 {
 bg[0] = bg0;
 bg[1] = bg1;
 bg[2] = bg2; 
 } 
 }

// Broadcasts / trigger bluetooth notif
public class btBroadcastReceiver extends BroadcastReceiver
{
 @Override
 public void onReceive(Context context, Intent intent)
 {
 String action=intent.getAction();
 /* Notification that BluetoothDevice is FOUND */
 if(BluetoothDevice.ACTION_FOUND.equals(action))
 {
 /* Get the discovered device Name */
 String discoveredDeviceName = intent.getStringExtra(BluetoothDevice.EXTRA_NAME);

 /* If the discovered Bluetooth device Name =SeeedBTSlave then CONNECT */
 if(discoveredDeviceName.equals("SeeedBTSlave"))
 { 
 /* Get a handle on the discovered device */
 btShield = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
 /* Connect to the discovered device. */
 ConBTdevice.connect2Bt();
 }
 }
 }
}


Quand je l'exécute, j'ai se qui suit dans la console :

----------
1. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android472854356632575730sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 32)
import java.io.OutputStream;
^^^^^^^^^^^^^^^^^^^^
The import java.io.OutputStream is never used
----------
2. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android472854356632575730sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 33)
import java.io.IOException;
^^^^^^^^^^^^^^^^^^^
The import java.io.IOException is never used
----------
3. ERROR in C:\Users\Dudule100\AppData\Local\Temp\android472854356632575730sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 141)
public void run()
^^^^^
The method run() of type sketch_Bluetooth.Connect2BtDevice must override a superclass method
----------
3 problems (1 error, 2 warnings)

BUILD FAILED
C:\Users\DUDULE~1\AppData\Local\Temp\android472854356632575730sketch\build.xml:15: The following error occurred while executing this line:
C:\Users\DUDULE~1\AppData\Local\Temp\android472854356632575730sketch\build.xml:28: Compile failed; see the compiler error output for details.

Total time: 1 second


Donc du coup j'ai essayer de mettre le @override en commentaire mais l'application se lance mais elle crash juste après que le bluetooth de mon téléphone est été activé.

Le code d'erreur afficher dans la console est alors :

----------
1. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 4)
import processing.data.*;
^^^^^^^^^^^^^^^
The import processing.data is never used
----------
2. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 5)
import processing.event.*;
^^^^^^^^^^^^^^^^
The import processing.event is never used
----------
3. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 6)
import processing.opengl.*;
^^^^^^^^^^^^^^^^^
The import processing.opengl is never used
----------
4. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 22)
import apwidgets.OnClickWidgetListener;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The import apwidgets.OnClickWidgetListener is never used
----------
5. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 24)
import apwidgets.*;
^^^^^^^^^
The import apwidgets is never used
----------
6. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 26)
import java.util.HashMap;
^^^^^^^^^^^^^^^^^
The import java.util.HashMap is never used
----------
7. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 27)
import java.util.ArrayList;
^^^^^^^^^^^^^^^^^^^
The import java.util.ArrayList is never used
----------
8. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 28)
import java.io.File;
^^^^^^^^^^^^
The import java.io.File is never used
----------
9. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 29)
import java.io.BufferedReader;
^^^^^^^^^^^^^^^^^^^^^^
The import java.io.BufferedReader is never used
----------
10. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 30)
import java.io.PrintWriter;
^^^^^^^^^^^^^^^^^^^
The import java.io.PrintWriter is never used
----------
11. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 31)
import java.io.InputStream;
^^^^^^^^^^^^^^^^^^^
The import java.io.InputStream is never used
----------
12. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 32)
import java.io.OutputStream;
^^^^^^^^^^^^^^^^^^^^
The import java.io.OutputStream is never used
----------
13. WARNING in C:\Users\Dudule100\AppData\Local\Temp\android2883945872655118155sketch\src\processing\test\sketch_bluetooth\sketch_Bluetooth.java (at line 33)
import java.io.IOException;
^^^^^^^^^^^^^^^^^^^
The import java.io.IOException is never used
----------
13 problems (13 warnings)


java.lang.NullPointerException
at processing.test.sketch_bluetooth.sketch_Bluetooth$Connect2BtDevice.run(sketch_Bluetooth.java:143)
at java.lang.Thread.run(Thread.java:848)


Je ne sais plus quoi faire, j'en ai impérativement, c'est pour mon projet de fin d'année pour mon bac.

Merci pour l'aide que vous pourrez m'apporter.
A voir également: