Java 本机库bluecove_arm不可用

Java 本机库bluecove_arm不可用,java,linux,arm,beagleboneblack,bluecove,Java,Linux,Arm,Beagleboneblack,Bluecove,我试图编译/运行一个程序,在运行Ubuntu的BeagleBone Black上使用BlueCove库。但是,我在运行时不断遇到此错误: Native Library bluecove_arm not available javax.bluetooth.BluetoothStateException: BlueCove library bluecove not available at com.intel.bluetooth.BlueCoveImpl.loadNativeLibraries(Bl

我试图编译/运行一个程序,在运行Ubuntu的BeagleBone Black上使用BlueCove库。但是,我在运行时不断遇到此错误:

Native Library bluecove_arm not available
javax.bluetooth.BluetoothStateException: BlueCove library bluecove not available
at com.intel.bluetooth.BlueCoveImpl.loadNativeLibraries(BlueCoveImpl.java:381)
at com.intel.bluetooth.BlueCoveImpl.detectStack(BlueCoveImpl.java:429)
at com.intel.bluetooth.BlueCoveImpl.access$500(BlueCoveImpl.java:65)
at com.intel.bluetooth.BlueCoveImpl$1.run(BlueCoveImpl.java:1020)
at java.security.AccessController.doPrivileged(Native Method)
at com.intel.bluetooth.BlueCoveImpl.detectStackPrivileged(BlueCoveImpl.java:1018)
at com.intel.bluetooth.BlueCoveImpl.getBluetoothStack(BlueCoveImpl.java:1011)
at javax.bluetooth.LocalDevice.getLocalDeviceInstance(LocalDevice.java:75)
at javax.bluetooth.LocalDevice.getLocalDevice(LocalDevice.java:95)
at edit.rit.ce.whud.DataServer.bluetoothHandler(DataServer.java:16)
at edit.rit.ce.whud.GUI.main(GUI.java:153)
我知道这不是代码的问题,因为我可以在运行Mint(基于Ubuntu)的x64位Linux计算机上使用BlueCove库运行代码。我在网上搜索了几个解决方案,但没有找到一个能解决我的问题。 我已经使用此方法为ARM重新编译了bluecove-gpl-2.1.0库

并尝试通过终端和NetBeans IDE编译/运行代码


我还需要做些其他的步骤来完成这项工作吗?为什么在我为ARM重新编译了Bluecove library之后,它仍然不断地说它不可用?

这是供以后遇到这个问题的人参考的:

在raspberry pi论坛上查看由over提供的信息。它就像一个符咒

为了推广一个易于理解的有效解决方案,并且因为这个问题是google上出现的第一个结果,我重新发布了上面提到的答案中的步骤(我做了一些轻微的修改,但效果相同):

从或下载
bluecove-2.1.0.jar
bluecove-gpl-2.1.0-sources.tar.gz

在RPi上,使用终端或SSH:

创建一个执行编译和提取源文件的位置:

`mkdir -p ~/temp/bluecove/target/`
`cd ~/temp`
`tar xf bluecove-gpl-2.1.0-sources.tar.gz`
`mv ~/Downloads/bluecove-2.1.0.jar ~/temp/bluecove/target/bluecove-2.1.0.jar`
现在文件夹temp包括两个文件夹:bluecove-gpl-2.1.0和bluecove

修改build.xml:

nano ~/temp/bluecove-gpl-2.1.0/build.xml

Delete text '-SNAPSHOT' on line 12 of build.xml:
from: <property name="product_version" value="2.1.0-SNAPSHOT"/>
to:   <property name="product_version" value="2.1.0"/>

Save file: `Ctrl+X` then `Y` and `Enter`.
连接蓝牙加密狗并测试蓝牙是否正常:

/etc/init.d/bluetooth status    # check to see whether the bluetooth is live
hcitool scan                    # show any devices in range of the dongle
sudo service bluetooth start    # start the bluetooth service if required
开始编译:

sudo apt-get update && apt-get upgrade && apt-get autoremove
sudo apt-get install bluetooth bluez-utils blueman
sudo apt-get install libbluetooth-dev   # BlueZ development package needed for compilation later
sudo apt-get install ant
cd ~/temp/bluecove-gpl-2.1.0
ant all
成功编译后,您可以在以下位置找到所需的gpl jar:

~/temp/bluecove-gpl-2.1.0/target/bluecove-gpl-2.1.0.jar
最后…

将生成的文件
bluecove-gpl-2.1.0.jar
与下载的文件
bluecove-2.1.0.jar
一起移动到java开发程序的java构建路径库目录中

使用bluecove库运行java程序可以这样做:

java  -cp  /path/to/MyJavaProgram.jar:/path/to/bluecove_libs/  myjavaprogram.MyJavaProgram
-cp
开关允许我们指定要包含的文件和目录的列表。每个目录和文件都用冒号(:)分隔

在本例中,我们希望包括
MyJavaProgram.jar
,以及
bluecove_libs
目录中的所有文件

最后一个参数告诉java应该从哪个包和类main()执行

请注意,
/path/to/bluecove_libs/
将包含以下文件:

  • bluecove-gpl-2.1.0.jar
    ->我们上面编译的文件
  • bluecove-2.1.0.jar
    ->我们从网上下载的文件
关于“我还需要做些什么才能让它工作?为什么它一直说Bluecove库在我为ARM重新编译后仍然不可用?”

当我试图在Ubuntu下编译时,我发现了同样的问题。原因在gcc编译器中。对于不同的版本,它有不同的默认参数

我必须对bluecove-gpl-2.1.1-SNAPSHOT.jar的build.xml进行以下更改

(一)

=>

(二)

您是否愿意详细说明哪些部件不工作以及您遇到了哪些错误?至少这样我有机会为其他人改进答案。当然。原来的错误根本没有解决。我完成了所有步骤,并将新jar导入到我的项目中。然后我为我的项目生成了一个可执行的jar,它包含所有的LIB,包括bluecove jar,并且类路径在清单中设置正确。我尝试按照指示使用java-cp运行该项目,结果相同。