android - 找不到.so文件android studio

标签 android android-studio android-gradle-plugin webrtc quickblox

我正在使用 Quickblox 构建我的聊天应用程序, 一切都运行良好,直到我决定将我的 gradle 升级到 1.5.0 之后我的 WebRTC 功能无法正常工作, 我将 gradle 改回 1.0.0 但我的项目仍然无法正常工作,每次我尝试调用电话时都会收到此异常:

这是堆栈跟踪:

 E/SensorManager: uid = 10271
    E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.quickblox.hola_app, PID: 29478
    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.quickblox.hola_app-1/base.apk"],
    nativeLibraryDirectories=[/system/lib, /vendor/lib, system/vendor/lib, system/vendor/lib/egl, system/lib/hw]]] 
    couldn't find "libjingle_peerconnection_so.so"
        at java.lang.Runtime.loadLibrary(Runtime.java:366)
        at java.lang.System.loadLibrary(System.java:989)
        at org.webrtc.PeerConnectionFactory.<clinit>(PeerConnectionFactory.java:39)
        at com.quickblox.videochat.webrtc.QBRTCClient.initPeerConnectionFactory(QBRTCClient.java:208)
        at com.quickblox.videochat.webrtc.QBRTCClient.createNewSessionWithOpponents(QBRTCClient.java:154)
        at com.quickblox.hola_app_core.qb.helpers.QBVideoChatHelper.startCall(QBVideoChatHelper.java:245)
        at com.quickblox.hola_app.ui.mediacall.CallActivity$3.run(CallActivity.java:644)
        at android.app.Activity.runOnUiThread(Activity.java:5272)
        at com.quickblox.hola_app.ui.mediacall.CallActivity.executeScheduledTasks(CallActivity.java:628)
        at com.quickblox.hola_app.ui.mediacall.CallActivity.onConnectedToService(CallActivity.java:617)
        at com.quickblox.hola_app.ui.base.ActivityHelper$QBChatServiceConnection.onServiceConnected(ActivityHelper.java:260)
        at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1314)
        at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1331)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:155)
        at android.app.ActivityThread.main(ActivityThread.java:5696)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)

可能是因为库没有加载,这是我搜索时的理解。 我的 gradle 设置是:

apply plugin: 'com.android.library'
apply plugin: 'maven'
apply plugin: 'signing'

android {
    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion

    defaultConfig {
        minSdkVersion rootProject.minSdkVersion
        targetSdkVersion rootProject.targetSdkVersion
    }
}

task nativeLibsToJar(type: Zip, description: 'create a jar archive of the native libs') {
    destinationDir file("$buildDir/native-libs")
    baseName 'native-libs'
    extension 'jar'
    from fileTree(dir: 'libs', include: '**/*.so')
    into 'lib/'
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn(nativeLibsToJar)
}

dependencies {
    compile files('libs/quickblox-android-sdk-customobjects-2.3.3.jar')
    compile files('libs/quickblox-android-sdk-chat-2.2.5.jar')
    compile files('libs/quickblox-android-sdk-content-2.2.5.jar')
    compile files('libs/quickblox-android-sdk-core-2.2.5.jar')
    compile files('libs/quickblox-android-sdk-messages-2.2.5.jar')
    compile files('libs/quickblox-android-sdk-videochat-webrtc-2.2.4.jar')
    compile 'com.android.support:support-v4:19.1.0'
    compile project(':facebook')
}

我的根项目build.gradle:

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

allprojects {
    repositories {
        mavenCentral()
    }
}

ext.compileSdkVersion = 21
ext.buildToolsVersion = '21.0.1'
ext.minSdkVersion = 14
ext.targetSdkVersion = 21
ext.versionName = '1.0'
ext.versionCode = 34


ext.prodDebug = false

// Dependencies versions
ext.universalImageLoaderVersion = '1.9.1'
ext.googlePlayServicesVersion = '5.0.+'
ext.croutonVersion = '1.8.4'
ext.nineoldandroidsVersion = '2.4.0'

最佳答案

尝试删除 HOME 文件夹中的 .gradle 文件夹并重建

关于android - 找不到.so文件android studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33864417/

相关文章:

android - 进程意外退出,AAPT2错误

android - Android Studio 中的代码分享

android - 阐明重载图形术语

android - 如何将数据库从我的 android 拉到我的桌面上?

java - Android Studio : java. lang.RuntimeException : Unable to start activity ComponentInfo. .. : java. lang.ClassCastException : java. util.ArrayList

安卓编程 : Can a particular date be converted as button?

Android资源链接失败错误: style attribute 'attr/textColorError (aka com.app.kite:attr/textColorError)' not found

java - 使用 JodaTime 获取一年中每个月的第一天和最后一天的最简单方法

android - 无法在 Android Studio 上使用向导创建 Activity

android-studio - Android studio 模拟器错误显示屏幕