2015-12-10 48 views
1

我有一个奇怪的崩溃的bug,不会在调试apk上发生,但在调用authWithPassword时会在签名的apk上崩溃。Firebase Android在为apk签名调用authWithPassword时崩溃

这是崩溃日志。蹊跷的SSL

E/Firebase(22682): An unexpected error occurred. Please contact [email protected] Details: 
E/Firebase(22682): java.lang.NullPointerException 
E/Firebase(22682): at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:382) 
E/Firebase(22682): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165) 
E/Firebase(22682): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
E/Firebase(22682): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
E/Firebase(22682): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
E/Firebase(22682): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
E/Firebase(22682): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:653) 
E/Firebase(22682): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:627) 
E/Firebase(22682): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:616) 
E/Firebase(22682): at com.firebase.client.authentication.AuthenticationManager$8.run(AuthenticationManager.java:450) 
E/Firebase(22682): at com.firebase.client.android.AndroidPlatform$2.run(AndroidPlatform.java:76) 
W/dalvikvm(22682): threadid=18: thread exiting with uncaught exception (group=0x4172de48) 

这是我gradle这个文件

apply plugin: 'com.android.application' 
apply plugin: 'com.google.gms.google-services' 
android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "com.exmaple.app" 
     minSdkVersion 14 
     targetSdkVersion 23 
     versionCode 11 
     versionName "1.0.3" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      lintOptions { 
       disable 'MissingTranslation' 
      } 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES.txt' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/LICENSE.txt' 
    } 
} 

dependencies { 
    compile project(':volley') 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 

    //android support 
    compile 'com.android.support:appcompat-v7:23.0.1' 
    compile 'com.android.support:recyclerview-v7:23.0.1' 
    compile 'com.android.support:cardview-v7:23.0.1' 
    compile 'com.android.support:palette-v7:23.0.1' 
    compile 'com.android.support:design:23.0.1' 

    //firebase 
    compile 'com.firebase:firebase-client-android:2.4.1' 

    //fab 
    compile 'com.getbase:floatingactionbutton:1.10.1' 

    //picasso image 
    compile 'com.squareup.picasso:picasso:2.5.2' 

    //circle progress 
    compile 'com.github.lzyzsd:circleprogress:[email protected]' 

    //parse 
    compile 'com.parse.bolts:bolts-android:1.3.0' 
    compile 'com.parse:parse-android:1.11.0' 

    //for local storage service 
    compile 'com.snappydb:snappydb-lib:0.4.0' 
    compile 'com.esotericsoftware.kryo:kryo:2.24.0' 

    //critercism 
    compile 'com.crittercism:crittercism-android-agent:+' 

    //google analytics 
    compile 'com.google.android.gms:play-services-analytics:8.3.0' 
} 

请你给我一个提示! 谢谢,

回答

1

不知道背后是什么,但似乎Firebase和Crittercism之间的冲突问题。

当初始化应用程序(的onCreate),这个命令将导致崩溃:

Firebase.setAndroidContext(context); 
Firebase.getDefaultConfig().setPersistenceEnabled(true); 
... 
Crittercism.initialize(context, crittercism_key); 

但这个工程:

Crittercism.initialize(context, crittercism_key); 
Firebase.setAndroidContext(context); 
Firebase.getDefaultConfig().setPersistenceEnabled(true); 
.... 

最后,为什么它会发生在APK签署的理由只是:

if (!BuildConfig.DEBUG) { 
    Crittercism.initialize(context, crittercism_key); 
} 
+0

好找Ricky! –