Невозможно импортировать класс Java из не Java-проекта Java в Android-проект - PullRequest
1 голос
/ 01 марта 2012

Я создаю приложение SMS-коммуникации между моим телефоном и компьютером.

У меня есть проблема, связанная с объектным классом, который предполагает передачу через сокет UDP.

Мой объект называется Message andон реализует сериализуемый.

У меня есть проект Java с приложением сервера и проект Android с приложением клиента.Моя проблема в том, что я не могу внедрить Message.java в проект android из проекта java, иначе я должен сделать копию этого класса в обоих проектах.Затем я получаю эту ошибку: Исключение в потоке "main" java.lang.ClassNotFoundException: AndroidApp.Message

Это мое приложение для Android:

    @Override
public void onReceive(Context context, Intent intent){
    Bundle bundle = intent.getExtras();        
    SmsMessage[] msgs = null;         
    if (bundle != null){
        Object[] pdus = (Object[]) bundle.get("pdus");
        msgs = new SmsMessage[pdus.length];         

        for (int i=0; i<msgs.length; i++){
            msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); 
            Message message = new Message(msgs[i].getOriginatingAddress(), msgs[i].getMessageBody().toString());
            try {
                sendMessageToServer(message);
            }catch(Exception e);


    private void sendMessageToServer(Message m) throws IOException {

    ByteArrayOutputStream bStream = new ByteArrayOutputStream();
    ObjectOutput oo = new ObjectOutputStream(bStream); 
    oo.writeObject(m);
    oo.close();

    byte[] serializedMessage = bStream.toByteArray();

    InetAddress IPAddress = InetAddress.getByName("10.0.2.2");
    DatagramSocket clientSocket = new DatagramSocket();

    DatagramPacket sendPacket = new DatagramPacket(serializedMessage, serializedMessage.length, IPAddress, 8080);

    clientSocket.send(sendPacket);
    clientSocket.close();
}

Мое сообщениекласс - это просто сообщение (String phoneNum, String msg).

Мой сервер выглядит так:

public class Server {  
public static void main(String args[]) throws Exception{

    DatagramSocket serverSocket = new DatagramSocket(8080);
    byte[] receiveData = new byte[100000];

    while(true){
        DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
        serverSocket.receive(receivePacket);
        ObjectInputStream iStream = new ObjectInputStream(new ByteArrayInputStream(receivePacket.getData()));
        Message message = (Message) iStream.readObject();
        iStream.close();
        System.out.println("RECEIVED FROM: " + message.getPhone() + ": " + message.getMessage());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...