実験的なgradleプラグインを使用しているAndroid Studioの新しいプロジェクトに2つの.so事前ビルドライブラリを追加しました(com.android.tools.build:gradle -experimental:0.6.0-beta5)。実験的なgradleプラグインを使用してAndroidスタジオでJavaから事前作成されたネイティブ.soライブラリを使用する
私のbuild.gradleファイルは次のようになります。
apply plugin: 'com.android.model.application'
model {
repositories {
prebuilt(PrebuiltLibraries) {
gstplayer {
binaries.withType(SharedLibraryBinary) {
sharedLibraryFile = file("libs/libgstplayer.so")
sharedLibraryFile = file("libs/libgstreamer_android.so")
}
}
}
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.myexample.gstreamertest2"
minSdkVersion.apiLevel 19
targetSdkVersion.apiLevel 23
versionCode 1
versionName "1.0"
buildConfigFields {
create() {
type "int"
name "VALUE"
value "1"
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles.add(file('proguard-rules.pro'))
}
}
ndk {
moduleName "gstplayer"
}
productFlavors {
create("flavor1") {
applicationId "com.app"
}
}
// Configures source set directory.
sources {
main {
// jni {
// source {
// srcDirs = ['src/main/jni']
// }
// }
jniLibs {
dependencies {
library "gstplayer"
}
}
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
}
Gradleのビルドが成功しているが、私はどこにもこれらのライブラリを参照する方法の説明を見つけることができません。私はpublic native String getInfoFromJni()
をJavaファイルに作成し、jniフォルダ内のネイティブ.cファイルを参照できることを知っています。これを得ることができましたが、.soライブラリと似たようなことをする方法がわかりません。
javaから.soライブラリのメソッドにアクセスするにはどうすればよいですか?
が.hファイルをコピーして良い音でなく、私は苦労してる部分がgstplayerwrapper.cにライブラリをインポートし、 – MarkyDD
libgstplayer.so私が見ることができる最初のエラーを呼んでいますライブラリのヘッダをgradleファイルに追加しないことです。 –
.soライブラリは非常に広範で、私があまりよく知っていないサードパーティのライブラリです。どのような.hファイルが必要なのかを知るには?この図書館には何百人もあります。私はサードパーティ製のライブラリから "include"ディレクトリを追加しました。Android Studioで作るときに#includeのエラーがたくさんあります。どのような理由であれ、コマンドラインでndk-buildを使用しても正常にビルドできますが、これらの.hファイルをjniに追加してAndroidスタジオでビルドすると、フォルダ内の他のファイルを参照している場合、ほとんどのファイル '' –
MarkyDD