2016-06-02 6 views
0

Ich benutze QuickBlox API, um eine Videokonferenzlösung über eine Android-Anwendung zu bauen. Es wird beobachtet, dass VC gut funktioniert, wenn apk im Debug-Modus erzeugt wird, aber nachdem es im Freigabemodus erzeugt wurde, schlägt es fehl. Ich habe Änderungen an den Regeln gemacht und auch minifyEnabled = true/false umgeschaltet, aber nichts half. HierQuickBlox Video Chat stürzt nach dem Erstellen von apk im Freigabemodus

ist die App build.gradle Datei:

buildscript { 
    repositories { 
     maven { url 'https://maven.fabric.io/public' } 
    } 

    dependencies { 
     classpath 'io.fabric.tools:gradle:1.+' 
    } 
} 
apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 
    packagingOptions { 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
    } 

    defaultConfig { 
     applicationId "XX.YYYYY" 
     minSdkVersion 17 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled = true 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      shrinkResources false 
      debuggable true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
     debug { 
      debuggable true 
      minifyEnabled false 
      shrinkResources false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 

    dexOptions { 
     incremental true 
     preDexLibraries true 
     javaMaxHeapSize "2g" 
    } 
} 

repositories { 
    mavenCentral() 
    maven { url "https://github.com/QuickBlox/quickblox-android-sdk-releases/raw/master/" } 
    maven { url 'https://maven.fabric.io/public' } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile files('libs/commons-codec-1.9.jar') 
    compile files('libs/httpmime-4.2.1.jar') 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 
    compile("com.quickblox:quickblox-android-sdk-chat:[email protected]") { 
     transitive = true 
    } 
    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'com.android.support:design:23.4.0' 
    compile 'com.android.support:cardview-v7:23.4.0' 
    compile 'com.google.android.gms:play-services-gcm:8.4.0' 
    compile 'com.google.android.gms:play-services-auth:8.4.0' 
    compile 'com.google.android.gms:play-services-ads:8.4.0' 
    compile 'com.android.support:recyclerview-v7:23.4.0' 
    compile 'com.makeramen:roundedimageview:2.2.1' 
    compile 'commons-validator:commons-validator:1.4.0' 
    compile 'com.squareup.picasso:picasso:2.5.2' 
    compile 'com.sothree.slidinguppanel:library:3.3.0' 
    compile 'com.quickblox:quickblox-android-sdk-core:[email protected]' 
    compile 'com.quickblox:quickblox-android-sdk-videochat-webrtc:[email protected]' 
    compile 'com.astuetz:pagerslidingtabstrip:[email protected]' 
    compile 'com.android.support:support-v4:23.4.0' 
} 
apply plugin: 'com.google.gms.google-services' 

und hier ist ein Auszug aus proguard Datei

#----quickblox------------------- 
-keep class org.jivesoftware.smack.** { *; } 
-keep class com.quickblox.** { *; } 
-keep class * extends org.jivesoftware.smack { public *; } 
-keep class org.jivesoftware.smack.** { public *; } 
-keep class org.jivesoftware.smackx.** { public *; } 
-keep class com.quickblox.** { public *; } 
-keep class * extends org.jivesoftware.smack { public *; } 
-keep class * implements org.jivesoftware.smack.debugger.SmackDebugger { public *; } 

-dontwarn com.quickblox.** 
-dontwarn org.jivesoftware.** 

Ich habe bereits einige Antworten sah aber die hat mir nicht geholfen.

unten ist das Fehlerprotokoll zum Zeitpunkt der Einleitung des Videoanrufs:

> 07-05 00:57:30.216 13043-13043/XX.XX E/MediaPlayer: Should have 
> subtitle controller already set 07-05 00:57:48.586 13043-20239/XX.XX 
> E/rtc: # 
> # Fatal error in ../../talk/app/webrtc/java/jni/classreferenceholder.cc, line 132 
> # Check failed: !jni->ExceptionCheck() 
> # error during FindClass: org/webrtc/VideoCapturerAndroid$NativeObserver 
>             # 07-05 00:57:48.591 13043-20239/XX.XXXX A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 
> 20239 (Thread-6176) 07-05 00:57:52.081 20288-20288/XX.XXXX 
> E/MotionRecognitionManager: mSContextService = null 07-05 00:57:52.081 
> 20288-20288/XX.XXXX E/MotionRecognitionManager: motionService = 
> [email protected]6d9d290 

Antwort

0

voll stacktrace von Ihrem Absturz Stellen zu Problem herauszufinden. Wenn die App nur im Release-Modus abstürzt, scheint es ein Progress-Problem zu sein. Versuchen Sie, QuickBlox-Pakete aus der Proguard-Datei zu entfernen.

+0

Bitte überprüfen Sie die Bearbeitung oben. Fehlerprotokoll hinzugefügt – Ranjan

+0

Siehe Thread: https://github.com/QuickBlox/quickblox-android-sdk/issues/161 – vfite

+0

Fügen Sie auch --keep Annotation für org.webrtc. * Paket – vfite