我正在使用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'
答案 0 :(得分:1)
尝试删除HOME文件夹中的.gradle文件夹并重建
答案 1 :(得分:1)
我通过将这些行添加到build.gradle文件来解决问题:
compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')
compile fileTree(dir: 'libs', include: '*.jar')