找不到.so文件安卓工作室

时间:2015-11-23 05:44:34

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

我正在使用Quickblox来构建我的聊天应用程序, 一切都很顺利,直到我决定将我的gradle升级到1.5.0后,我的WebRTC功能无法正常工作, 我将gradle更改回1.0.0但仍然我的项目无法正常工作,每次我尝试拨打电话时都会遇到此异常:

这是stacktrace:

 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'

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我通过将这些行添加到build.gradle文件来解决问题:

    compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')
    compile fileTree(dir: 'libs', include: '*.jar')