6

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 ライブラリを既に再コンパイルしました。

http://www.raspberrypi.org/forums/viewtopic.php?f=81&t=58758

ターミナルと NetBeans IDE の両方を使用してコードをコンパイル/実行しようとしました。

この作業を行うために必要な他の手順はありますか? ARM 用に再コンパイルした後でも、Bluecove ライブラリが利用できないと言い続けるのはなぜですか?

4

2 に答える 2

4

これは、この質問に出くわした人のための将来の参照用です。

ラズベリー パイ フォーラムでMyRevelが提供する回答を確認してください。それは魅力のように働きました!:)

従うのが簡単な実用的な解決策を広めるために、そしてこの質問はGoogleに表示される最初の結果であるため、上記の回答からの手順を再投稿します(わずかな変更を加えましたが、効果は同じです):

http://code.google.com/p/bluecove/downloads/listまたはhttp://sourceforge.net/projects/bluecove/files/BlueCove/2.1.0/からダウンロード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 の 2 つのフォルダーが含まれます。

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`.

bluetooth パッケージとコンパイルに必要なパッケージをインストールします。

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

Bluetooth ドングルを接続し、Bluetooth が OK かどうかをテストします。

/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

コンパイルを開始します。

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.jarJava 開発プログラムの Java ビルド パス ライブラリ ディレクトリに移動します。

bluecove ライブラリを使用して Java プログラムを実行するには、次のようにします。

java  -cp  /path/to/MyJavaProgram.jar:/path/to/bluecove_libs/  myjavaprogram.MyJavaProgram

この-cpスイッチを使用すると、含めるファイルとディレクトリのリストを指定できます。各ディレクトリとファイルは、コロン (:) で区切られています。

この場合、、およびディレクトリMyJavaProgram.jar内のすべてのファイルを含めたいと考えています。bluecove_libs

最後のパラメーターは、main() を実行する必要があるパッケージとクラスを java に伝えます。

/path/to/bluecove_libs/次のファイルが含まれることに注意してください。

  • bluecove-gpl-2.1.0.jar-> 上記でコンパイルしたファイル
  • bluecove-2.1.0.jar-> Web からダウンロードしたファイル
于 2014-10-30T06:38:37.560 に答える
0

「これを機能させるために他に必要な手順はありますか? ARM 用に再コンパイルした後でも、Bluecove ライブラリが利用できないと言い続けるのはなぜですか?」 について

Ubuntu でコンパイルしようとしたときに、同じ問題が見つかりました。その理由は gcc コンパイラにありました。バージョンごとに異なるデフォルト パラメータがあります。

bluecove-gpl-2.1.1-SNAPSHOT.jar の build.xml で次の変更を行う必要がありました

1) <property name=»bluecove.native.linker.options» value=»-nodefaultlibs«/>

=>

<プロパティ名=»bluecove.native.linker.options» 値=»»/>

2) <arg value=»-Wl,-soname,libbluecove${library_sufix}-${product_version}»/>

=>

<arg value=»-Wl,—no-as-needed,-soname,libbluecove${library_sufix}-${product_version}»/>

3) <arg value=»-L${libs-universal}»/>

<arg value=»-lbluetooth»/>

<arg line=»${bluecove.native.linker.options}»/>

<arg value=»-Wl,-soname,libbluecove${library_sufix}-${product_version}»/>

=>

<arg value=»-L${libs-universal}»/>

<arg line=»${bluecove.native.linker.options}»/>

<arg value=»-Wl,—no-as-needed,-soname,libbluecove${library_sufix}- ${product_version}»/>

<arg value=»-lbluetooth»/>

http://privateblog.by/raspberry-pi-kak-rabotat-s-bluetooth-na-java/

于 2017-01-06T03:59:23.563 に答える