Android Studio 使用Gradle引入第三方库文件的总结

当前的代码中并看到代码中哪里加载了so文件,没有调用函数System.loadLibrary("tensorflow_inference")? 难点在build.gradle中配置就行?

在TensorFlowInferenceInterface的构造函数中,加载了libtensorflow_inference.so, 虽然LoadLibraryde的参数中没有lib\.so字样(代码中会处理),从这里也可以看出代码中显示load也没有问题。

Android Studio 使用Gradle引入第三方库文件的总结

 

这个文章写的很清楚: https://blog.csdn.net/growing_tree/article/details/51979706

其中关键点是

新版Gradle实现了自动打包编译so文件的功能,并且为so文件指定了默认的目录app/src/main/jniLibs,当然默认是没有这个文件夹的,我们只需要新建一个jniLibs文件夹,并将so文件复制到该文件夹下,编译运行即可。

通常,为了更好地管理第三方库文件,或者更简单地将Eclipse项目转化为Android Studio项目,建议将jar文件和so文件放在一起,统一搁置在app/libs目录下,此时,我们只需要在build.gradle的android一栏中添加如命令,指定so文件的目录即可

相当于建立一个链接:要找具体的文件也要到libs目录下

    sourceSets {
        main {
                jniLibs.srcDirs = ['libs']
        }
    }
 

然后再添加依赖就可以了
implementation fileTree(dir: 'libs', include: ['*.jar'])