无法将java类从非android java项目导入到android项目中

时间:2012-02-29 21:34:00

标签: java android import sms udp

我在手机和电脑之间创建了一个短信通信应用程序。

我有一个关于objectclass的问题,我想通过UDP套接字进行传输。

我的对象名为Message,它实现了serializable。

我有一个带有服务器应用程序的Java项目和带有客户端应用程序的Android项目。我的问题是我无法从java项目中将Message.java实现到android项目中,也没有其他方式,我必须在两个项目中制作该类的副本。然后我得到这个错误: 线程“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();
}

我的Message类只是Message(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());
    }
}

0 个答案:

没有答案