如何在 Android Studio 3.4 中导入第三方二进制库?
How to import 3rd party binary library in Android Studio 3.4?
背景:
我想在 Android Studio 3.4 中使用第三方库。该库包括三个文件:see pics
- arm64-v8a/libAnalyticsLib.所以
- armeabi-v7a/libAnalyticsLib.所以
- StrideAnalyticsLib.jar.
"StrideAnalyticsLib.jar" 中的 class 文件表明它们似乎是使用 SWIG 生成的。
我已经尝试了两种方法来导入这个库,但仍然无法
导入 StrideAnalyticsLib。*;
但这不允许访问 classes 并显示“不能
解析符号 ...".
.so 文件带有 jniLibs
~/main/jniLibs/
~/main/jniLibs/arm64-v8a/libAnalyticsLib.so
~/main/jniLibs/armeabi/libAnalyticsLib.so
.so 文件在库中;同时,我在build.gradle中添加了"sourceSets { main{ jniLibs.srcDirs = ['libs']}}";
~/libs/
~/libs/arm64-v8a/libAnalyticsLib.so
~/libs/armeabi/libAnalyticsLib.so
两次尝试之后都是清理和重建 project.I 对 Android 来说非常新,无法正常工作。有人可以提供帮助吗?非常感谢!
在研究了使用 SWIG 将 c/c++ 库包装到 .jar 和 .so 中的过程后,我意识到 .jar 和 .so 将具有相同的包名称,因此 .jar可以调用.so文件。
因为我的 .jar 在保存在 /libs 中时不起作用,我改为复制 .jar 中的所有 类 并将它们粘贴到 /main 文件夹中。记得把它们放在你的包外面,否则这些 类 的包名会被改变,导致我的问题。导入 .so 的方式是正确的。只需将 .so 文件放在 /main/jniLibs 中。
背景:
我想在 Android Studio 3.4 中使用第三方库。该库包括三个文件:see pics
- arm64-v8a/libAnalyticsLib.所以
- armeabi-v7a/libAnalyticsLib.所以
- StrideAnalyticsLib.jar.
"StrideAnalyticsLib.jar" 中的 class 文件表明它们似乎是使用 SWIG 生成的。
我已经尝试了两种方法来导入这个库,但仍然无法
导入 StrideAnalyticsLib。*;
但这不允许访问 classes 并显示“不能 解析符号 ...".
.so 文件带有 jniLibs
~/main/jniLibs/
~/main/jniLibs/arm64-v8a/libAnalyticsLib.so
~/main/jniLibs/armeabi/libAnalyticsLib.so
.so 文件在库中;同时,我在build.gradle中添加了"sourceSets { main{ jniLibs.srcDirs = ['libs']}}";
~/libs/
~/libs/arm64-v8a/libAnalyticsLib.so
~/libs/armeabi/libAnalyticsLib.so
两次尝试之后都是清理和重建 project.I 对 Android 来说非常新,无法正常工作。有人可以提供帮助吗?非常感谢!
在研究了使用 SWIG 将 c/c++ 库包装到 .jar 和 .so 中的过程后,我意识到 .jar 和 .so 将具有相同的包名称,因此 .jar可以调用.so文件。
因为我的 .jar 在保存在 /libs 中时不起作用,我改为复制 .jar 中的所有 类 并将它们粘贴到 /main 文件夹中。记得把它们放在你的包外面,否则这些 类 的包名会被改变,导致我的问题。导入 .so 的方式是正确的。只需将 .so 文件放在 /main/jniLibs 中。