使用java WTK 2.5.2的蓝牙服务器应用程序在启动时崩溃

时间:2011-03-02 07:49:25

标签: java bluetooth

在过去的几天里,我一直在开发一个Android应用程序,其目标是使用触摸屏将光标移动到我的计算机上。

我首先使用WiFi实现了手机和电脑之间的通信。一切都还可以,但我希望能够使用蓝牙。

在手机方面,一切都很简单。我无法实现的是蓝牙服务器。

我已经下载并(痛苦地)安装了Java Wireless Toolkit 2.5.2和JavaSE jdk。

现在我的代码很简单,看起来像这样:

import java.io.IOException;
import javax.bluetooth.*;
import javax.microedition.io.*;

public class BluetoothServer extends Thread {
    //private static LocalDevice localDevice;
    static LocalDevice localDevice;
    DiscoveryAgent agent;

    //start server
    private StreamConnection startServer() throws IOException{
        System.loadLibrary("zayit");

        //Create a UUID for SPP
        UUID uuid = new UUID(0x1101);
        //Create the servicve url
        String connectionString = "btspp://localhost:" + uuid +";name=SampleSPPServer";

        //open server url
        StreamConnectionNotifier streamConnNotifier = (StreamConnectionNotifier)Connector.open( connectionString );

        //Wait for client connection
        System.out.println("\nServer Started. Waiting for clients to connect...");
        StreamConnection connection = streamConnNotifier.acceptAndOpen();

        return connection; 
    }
}

我添加了外部jar来获取javax.bluetooth和javax.microedition的导入。

项目正常构建但是当我启动它时,它崩溃并出现以下错误:

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xb27d6400, pid=25778, tid=2999303024
#
# JRE version: 6.0_24-b07
# Java VM: Java HotSpot(TM) Server VM (19.1-b02 mixed mode linux-x86 )
# Problematic frame:
# C  [libzayit.so+0x23e400]  kvm_resetOperandStack+0x8
#
# An error report file with more information is saved as:
# /home/ixm/workspace/RemoteControlServer/hs_err_pid25778.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.

没有System.loadLibrary(),我收到以下错误:

Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError: javax.microedition.io.Connector.isNetworkMonitorActive()Z
    at javax.microedition.io.Connector.isNetworkMonitorActive(Native Method)
    at javax.microedition.io.Connector.<clinit>(Connector.java:153)
    at BluetoothServer.startServer(BluetoothServer.java:20)
    at BluetoothServer.run(BluetoothServer.java:43)

我不知道应该做什么或尝试什么。我在互联网上找不到任何有用的东西。

有人能帮助我吗?也许真正的问题是:“是否有可能开发一个使用蓝牙的Java应用程序(用于计算机)?”

非常感谢!

致以最诚挚的问候,

IXM

1 个答案:

答案 0 :(得分:0)

我已经注意到我安装了错误版本的Java(SE而不是ME)。我不会尝试安装正确的,因为它是专为移动设备设计的。

相反,我会用bluecove拍摄一下。之前我没有调查过,因为我认为它是一个用于Windows的python库。显然,情况并非如此,在我第一次阅读项目页面时,我是盲目或愚蠢的。

抱歉