我获得了一个名为libremote_client.so的.so库
该库有一个名为getInstance的函数,它返回一个Object类型IRemote。 我已将.so文件复制到
中的AndroidStudio项目中应用程序/ SRC /主/ jniLibs / armeabi / libremote_client.so
在我的活动中,我在课程级别声明了以下内容
public native IRemote getInstance();
不幸的是,AndroidStudio无法解析引用类型IRemote。我显然没有在我的项目中正确包含预构建的.so文件。
我想我可能需要在Gradle中添加一些依赖项,但我不知道从哪里开始。
下面是我的gradle文件,任何人都可以告诉我如何正确地将.so文件添加到我的项目中,以便我的Activity可以解析IRemote引用类型吗?
提前致谢
马特
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "devreach.co.uk.devreach"
minSdkVersion 19
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable true
}
}
}
dependencies {
compile fileTree(dir: 'jniLibs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile files('libs/sqlcipher.jar')
compile project(':ScreenSharingSDK')
compile files('libs/joda-time-2.4.jar')
compile files('libs/gcm.jar')
compile project(':edm')
compile project(':kcm')
compile project(':rc')
}
答案 0 :(得分:1)
将此行添加到gradle:
sourceSets {
main {
jni.srcDirs = []
jniLibs.srcDir 'src/main/jniLibs'
}
}
答案 1 :(得分:0)
无论谁给你.so文件忘了给你相关的Java文件,包括IRemote和更多。如果没有IRemote.java
接口类,您或编译器如何知道可以调用哪些方法以及返回哪些数据?
我也注意到你有这条线
compile fileTree(dir: 'jniLibs', include: ['*.jar'])
这不是必需的,可以删除。