に埋め込まの.soファイルとjarファイルを使用する方法。私はOSGiバンドルを作成しようとしていますが、トラブルに私の依存関係のための1を実行していますOSGI
私はBeagleboneブラックにいくつかのシリアルIOとGPIOのものを行うアプリケーションを作っています。シリアルとGPIOのために私は図書館libbulldogを使用しています。ライブラリのjarファイルの一つが.soのファイルにネイティブコードが含まれています。
私はそれからOSGiバンドルを作るためにBND-プラットフォームを使用してlibbulldogライブラリをラップします。
私はこのアプローチを使用する場合はApacheフェリックスでアプリケーションの実行をしようとしたとき、私は例外を取得:
java.lang.ExceptionInInitializerError
at test.BBB.core.BSSerial.setup_port(BSSerial.java:215)
at test.BBB.core.BSSerial.<init>(BSSerial.java:28)
at test.BBB.Activator.start(Activator.java:50)
at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2226)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2144)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.lang.Thread.run(Thread.java:745)
Caused by: io.silverspoon.bulldog.core.platform.IncompatiblePlatformException
at io.silverspoon.bulldog.core.platform.Platform.createBoard(Unknown Source)
at test.bs.sys.Setup.<clinit>(Setup.java:22)
ライブラリを使用してOSGIコンテキストの外では何の問題も与えていないが、私が何かをする必要がありそうですOSGiバンドルで使用する場合の.soファイルにアクセスできるようにするために余分な?
問題の依存関係のjarファイルは、次のようになりますOSGIコンテキストで使用可能な組み込みの.soファイルを作成する
|-META-INF
| |- metadata
|
|-io.silverspoon.bulldog.beagleboneblack
| |- Java code
|
|-lib
|- bulldog-linux-native.beagleboneblack.so
何をすべきか?