关闭

couldn't find "libxxx.so"与"libxxx.so" is too small to be an ELF executable解决方法

标签: Androidjnindk
4405人阅读 评论(0) 收藏 举报
分类:

跟着书学习使用Bmob后端云的使用,导入用到的两个jar包后出现了下面的错误:

java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader[DexPathList[[zip file "xxx.apk"],nativeLibraryDirectories=[xxx/lib, /vendor/lib, /system/lib]]] couldn't find "libxxx.so"
原来是缺少.so文件。然后我在下载的sdk里找到了.so,关键是如何导入。

上网搜索后找到两种方法:

方法1

一定要将目录结构改成下面这个样子:

|---src
     |---main
           |---jniLibs
                  |---arm64-v8a
                         |---libhello-jni.so
                  |---armeabi
                         |---libhello-jni.so
                  |---armeabi-v7a
                         |---libhello-jni.so
                  |---x86
                         |---libhello-jni.so
                  |---x86_64
                         |---libhello-jni.so
                  |---mips
                         |---libhello-jni.so
                  |---mips64
                         |---libhello-jni.so

方法2

直接修改app的build.gradle文件如下:

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

但是,我使用以上方法后,又出现了一个新错误:

java.lang.UnsatisfiedLinkError: dlopen failed: "libxxx.so" is too small to be an ELF executable

问公司带我的人怎么办,他让我直接去看Bmob的开发文档,结果开发文档里显示不需要手动添加jar包,而是在build.gradle中添加maven库:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

allprojects {
    repositories {
        jcenter()
        //Bmob的maven仓库地址,必须填写
        maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
    }
}
然后添加compile依赖文件:

compile 'cn.bmob.android:bmob-sdk:3.4.7-aar'
这样就解决了。

注:以上方法是在android studio中使用的。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

AndroidStudio-/vendor/lib, /system/lib]]] couldn't find "libweibosdkcore.so"

- so文件是什么? so文件也是ELF格式文件,是共享库(动态库),类似于DLL。是为了节约资源,加快速度,简化代码升级。多用于linux环境下。 - 怎么生成以及使用一个so动态库文件? so文...
  • woshixingguang
  • woshixingguang
  • 2016-01-07 01:30
  • 5700

Android项目开发填坑记-so文件引发的攻坚战

故事的最初我负责的项目A要求有播放在线视频的功能,当时从别人的聊天记录的一瞥中发现百度有相关的SDK,当时找到的是Baidu-T5Player-SDK-Android-1.4s,项目中Demo的so库...
  • ys743276112
  • ys743276112
  • 2016-03-16 16:41
  • 5899

加载so库错误问题“couldn't find "libbmob.so"”

整个app的配置文件的 android { 中添加: sourceSets { main() { jniLibs.srcDirs = ['libs'] }...
  • gaobaoshen1
  • gaobaoshen1
  • 2016-06-06 09:47
  • 2584

couldn't find "libxxx.so"

原文地址:http://blog.csdn.net/shengyingpo/article/details/51538444 跟着书学习使用Bmob后端云的使用,导入用到的两个jar...
  • chenhuakang
  • chenhuakang
  • 2017-11-10 17:52
  • 102

解决Android 错误 couldn't find "xxx.so" is 32-bit instead of 64-bit

今天导入一个开源项目,导入后运行报错,错误couldn't find "xxx.so" 提示是没有在64位的文件夹中找到so文件,看了下,果然!64位的so一个都没有,只有32位的so文件,马上git...
  • li_dongcai
  • li_dongcai
  • 2016-12-13 19:30
  • 1854

Android Studio引入jar包和so文件(armeabi和armeabi-v7a)

一、引用jar文件     1.将jar文件复制、粘贴到app的libs目录中;     2.右键点击jar文件,并点击弹出菜单中的“Add As Library”,将jar文件作为类库添加到项目...
  • qq_30393319
  • qq_30393319
  • 2015-12-08 13:28
  • 3494

AndroidStudio3.0使用过程中遇到的bug

一、导入项目报错问题: 如果是AndroidStudio3.0以上的编译工具编译的项目,可直接导入 如果是AndroidStudio3.0以下的编译工具编译的项目,切记改完之后再导入。 Pr...
  • lxa_airn1933
  • lxa_airn1933
  • 2017-11-29 16:50
  • 238

在AndroidStudio不能找到so文件问题:couldn't find libweibosdkcore.so

Process: com.example.myweibo, PID: 12241 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoad...
  • qq_29819253
  • qq_29819253
  • 2015-08-24 20:57
  • 5263

部分手机不能加载so文件,couldn't find *.so

背景当我们项目中使用到了.so库时,大部分手机能正常运行,但是部分手机在运行时,比如我们项目中使用到了mupdf这个开源的pdf查看器,里面需要使用到libmupdf.so,此时会报couldn’t ...
  • a631855639
  • a631855639
  • 2016-01-29 11:44
  • 6001

couldn't find "libvinit.so"

couldn't find "libvinit.so"
  • meijie770342
  • meijie770342
  • 2016-08-23 20:05
  • 369
    个人资料
    • 访问:61428次
    • 积分:2457
    • 等级:
    • 排名:第17316名
    • 原创:197篇
    • 转载:0篇
    • 译文:0篇
    • 评论:25条
    最新评论