2017-02-19 14 views
0

私はopencvを使ってプロジェクトを進めています。私は正常にmacOSプラットフォームのために必要なjarとネイティブlibsを作成しました。私は今私のJavaプロジェクトでこれを使いたいと思っています。ビルドと依存関係の管理にgradleを使用しています。プロジェクトのlibフォルダにjarとネイティブ依存関係を追加しました。gradleを使ってjavaプロジェクトにネイティブ依存関係を追加するには

build.gradle

group 'com.udaykale' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 

sourceCompatibility = 1.8 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile(
      files('lib/opencv-320.jar') 
    ) 
    testCompile group: 'junit', name: 'junit', version: '4.11' 
} 

System.setProperty("java.library.path", "lib") 

私は、次のエラーを取得しています:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java320 in java.library.path 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) 
    at java.lang.Runtime.loadLibrary0(Runtime.java:870) 
    at java.lang.System.loadLibrary(System.java:1122) 
    at com.udaykale.imageeditor.Main.<clinit>(Main.java:13) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 

私はネイティブライブラリを実行時に表示されていないことを理解しています。これを処理するために私のgradle設定を変更するにはどうすればよいですか?

答えて

0

ローカルにopencv-320.jarファイルをmavenでインストールし、それをbuild.gradleの依存関係として使用します。ローカルにartifact use followingコマンドをインストールします。それに応じてバージョン、グループID、成果物IDを指定します。

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> 
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=jar 

また

repositories { 
mavenLocal() 
} 

をbuild.gradleそして依存

dependencies { 
compile "<group-id>:<artifact-id>:<version>" 
} 
+0

それでも同じエラーするローカルリポジトリを追加します。そのネイティブの依存関係を見つけることができません。 – uday

+0

正しくコンパイルできますか?また、ライブラリにmac OS固有のコードを使用しましたか?もしそうなら、あなたのコードはプラットフォームに依存しています –

+0

この代わりの解決策は、 'mavenLocal()'を使う以外はローカルファイルから引き出すことと同じです。 – chenrui

関連する問題