Buona sera, come da titolo sto tentando di riempire una listView con un custom adapter da un Oggetto ArrayList Ricevuto da un socket server scritto in Java ma il Client Android Non trova la classe inviata dal Socket :
Server:
codice:
public class Server {
static ArrayList<Busta> prova;
public static void main(String srgs[]) {
int count = 0;
initList();
//hard code to use port 8080
try (ServerSocket serverSocket = new ServerSocket(6789)) {
System.out.println("I'm waiting here: " + serverSocket.getLocalPort());
while (true) {
try {
Socket socket = serverSocket.accept();
count++;
System.out.println("#" + count + " from "
+ socket.getInetAddress() + ":"
+ socket.getPort());
HostThread myHostThread = new HostThread(socket, count);
myHostThread.start();
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
private static class HostThread extends Thread{
private Socket hostThreadSocket;
int cnt;
HostThread(Socket socket, int c){
hostThreadSocket = socket;
cnt = c;
}
@Override
public void run() {
OutputStream outputStream;
try {
outputStream = hostThreadSocket.getOutputStream();
try (ObjectOutputStream objectOutputStream =
new ObjectOutputStream(outputStream)) {
objectOutputStream.writeObject(prova);
}
} catch (IOException ex) {
System.out.println(ex.toString());
}finally{
try {
hostThreadSocket.close();
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
}
}
private static void initList(){
try
{
prova = new ArrayList<Busta>();
String DATABASE_URL = "jdbc:ucanaccess:///OneDrive//Programmazione//Android//dati.mdb;password=gmpa;memory=false";
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection conn = DriverManager.getConnection(DATABASE_URL);
System.out.println(conn);
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM [tabripa]");
while (rs.next()) {
//prova.add(rs.getString("Nbusta"));
prova.add(new Busta(rs.getString("Nbusta"),rs.getNString("Nome")));
}
s.close();
conn.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
Il metodo del client che riceve i dati dell'ArrayList:
codice:
class ClientThread extends AsyncTask{
//ArrayAdapter<String> arrayAdapter;
AdaperRisultato arrayAdapter = null;
@Override
protected Object doInBackground(Object[] objects) {
try {
Socket socket = new Socket("192.168.3.199",porta);
try {
ObjectOutputStream objectOutput = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream objectInput = new ObjectInputStream(socket.getInputStream()); //Error Line!
try {
Object object = objectInput.readObject();
arrayBusta = (ArrayList<Busta>) object;
for (int i = 0; i < arrayBusta.size(); i++) {
// String get = arrayBusta.get(i);
System.out.println(arrayBusta.get(i));
//List list = new LinkedList();
//list.add(new Busta(arrayBusta));
}
} catch (ClassNotFoundException e) {
System.out.println("Classe Non esistente");
e.printStackTrace();
}
} catch (IOException e) {
System.out.println("Lettura Socket Con Problemi");
e.printStackTrace();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return arrayBusta;
}
@Override
protected void onPostExecute(Object o) {
ArrayList<Busta> listaAdaptor = Busta.fromJson(arrayBusta);
arrayAdapter = new AdaperRisultato(MainActivity.this,R.layout.adapter_row, listaAdaptor);
lista.setAdapter(arrayAdapter);
}
}
}
:
Bisognerebbe che vi mandassi sia il Server e il Client per capire bene perchè ci mancano i modelli.
Errore:
codice:
/System.err: java.lang.ClassNotFoundException: provaserverclient3.BustaW/System.err: at java.lang.Class.classForName(Native Method)
W/System.err: at java.lang.Class.forName(Class.java:400)
W/System.err: at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:626)
W/System.err: at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1613)
W/System.err: at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
W/System.err: at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1772)
W/System.err: at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
W/System.err: at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
W/System.err: at java.util.ArrayList.readObject(ArrayList.java:763)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1006)
W/System.err: at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1894)
W/System.err: at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1799)
W/System.err: at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
W/System.err: at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
W/System.err: at com.example.nio74.client.MainActivity$ClientThread.doInBackground(MainActivity.java:92)
W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:304)
W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
W/System.err: at java.lang.Thread.run(Thread.java:761)
W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "provaserverclient3.Busta" on path: DexPathList[[dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-support-annotations-25.1.0_18468df7b6490749d338021d6a3bd505913b26ce-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_9-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_8-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_7-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_6-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_5-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_4-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_3-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_2-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_1-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_0-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-vector-drawable-25.1.0_61c5c034009fb96d470a84e27ffe016f04cdc494-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-v4-25.1.0_a683b53f0f348e2797ad85f4fa61d2d3902b1eeb-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-media-compat-25.1.0_c8ae95ba217fcf1c9ab7ad7524b62216ac9045e8-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-fragment-25.1.0_4a4787580f755f8e0128468ecd8cb3b0bf94a90b-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-core-utils-25.1.0_570094e70a8f013e44b6d3a6698ed4d5b7b8defe-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-core-ui-25.1.0_cd0bb001a93f1e24a1feac8c98b90329db02bcf4-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-compat-25.1.0_6e16847b37fb1ae872982c138fa06dd1e2289d50-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-appcompat-v7-25.1.0_e270828f2f74a9e6555959501d393eb5ff2812b2-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-animated-vector-drawable-25.1.0_20db7c43375e6d633a8498022b07bfb62cfb3a13-classes.dex"],nativeLibraryDirectories=[/data/app/com.example.nio74.client-2/lib/x86, /system/lib, /vendor/lib]]
W/System.err: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
W/System.err: at com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader.findClass(IncrementalClassLoader.java:90)
W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
W/System.err: ... 22 more