我有一个项目的.so文件,但现在我想在我的项目中包含该文件。我尝试了所有的可能性。我使用以下样本
task copyJniLibs(type: Copy) {
from 'libs/armeabi'
into 'src/main/jniLibs/armeabi'
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(copyJniLibs)
}
clean.dependsOn 'cleanCopyJniLibs'
并在jnilibs文件夹中复制了.so文件,如同在几个答案中建议但仍然得到与
相同的错误 java.lang.UnsatisfiedLinkError: Native method not found: com.example.manvish.gpio.MainActivity.setGpioDataHigh:(I)Z
答案 0 :(得分:1)
您不需要所有这些gradle任务。设置
就足够了android {
sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
}
但是,问题是你在libs/armeabi
中使用的本机库是否实现了本机方法。如果是,则导出具有特制名称Java_com_example_manvish_gpio_MainActivity_setGpioDataHigh
的函数。