加载 .so 库时出现问题
Trouble with loading .so library
我有一个 android 项目 (Inellij IDEA)。我从官方网站下载了 BASS 库,并将内容从 lib
文件夹复制到我的项目文件夹 libs/
。但是当我尝试用 System.loadLibrary("bass");
加载它时,它会抛出一个错误:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip
file "/data/app/com.negi.opengltest-1/base.apk"],nativeLibraryDirectories=
[/vendor/lib, /system/lib]]] couldn't find "libbass.so"
我做错了什么?也许,我需要更改 gradle 配置?
以下解决方案来自http://www.un4seen.com/forum/?topic=15633.msg110256#msg110256:
1 mkdir lib, then, copy armeabi to lib, the tree should be lib/armeeabi/libbass.so
2 zip lib directory: $zip -r libbass.zip lib
3 rename: $mv libbass.zip libbass.jar
4 copy libbass.jar to YourProject/Youproject/src/main/libs ("YourProject/Youproject/src/main/" includes AndroidManifests.xml, res, java, libs)
5 add this line:
compile fileTree(dir: 'libs', include: '*.jar')
to your build.gradle---->dependencies
就我而言,是 Crashlytics 发生了冲突。当我在 build.gradle 的下方评论时,一切顺利。
// compile('com.crashlytics.sdk.android:crashlytics:2.6.7@aar') {
// transitive = true;
// }
// compile('com.crashlytics.sdk.android:crashlytics-ndk:1.1.6@aar') {
// transitive = true;
// }
我有一个 android 项目 (Inellij IDEA)。我从官方网站下载了 BASS 库,并将内容从 lib
文件夹复制到我的项目文件夹 libs/
。但是当我尝试用 System.loadLibrary("bass");
加载它时,它会抛出一个错误:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip
file "/data/app/com.negi.opengltest-1/base.apk"],nativeLibraryDirectories=
[/vendor/lib, /system/lib]]] couldn't find "libbass.so"
我做错了什么?也许,我需要更改 gradle 配置?
以下解决方案来自http://www.un4seen.com/forum/?topic=15633.msg110256#msg110256:
1 mkdir lib, then, copy armeabi to lib, the tree should be lib/armeeabi/libbass.so
2 zip lib directory: $zip -r libbass.zip lib
3 rename: $mv libbass.zip libbass.jar
4 copy libbass.jar to YourProject/Youproject/src/main/libs ("YourProject/Youproject/src/main/" includes AndroidManifests.xml, res, java, libs)
5 add this line:
compile fileTree(dir: 'libs', include: '*.jar')
to your build.gradle---->dependencies
就我而言,是 Crashlytics 发生了冲突。当我在 build.gradle 的下方评论时,一切顺利。
// compile('com.crashlytics.sdk.android:crashlytics:2.6.7@aar') {
// transitive = true;
// }
// compile('com.crashlytics.sdk.android:crashlytics-ndk:1.1.6@aar') {
// transitive = true;
// }