android - 为签名的 apk 使用密码调用 auth 时,Firebase Android 崩溃

标签 android firebase crittercism

我有一个奇怪的崩溃错误,不是发生在调试 apk 上,而是在调用 authWithPassword 时发生在已签名的 apk 上。

这是崩溃日志。 SSL 有问题

E/Firebase(22682): An unexpected error occurred. Please contact support@firebase.com. 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:1.1.0@aar'

    //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'
}

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

最佳答案

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

当init app(onCreate)时,这条命令会导致crash:

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);
}

关于android - 为签名的 apk 使用密码调用 auth 时,Firebase Android 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34195090/

相关文章:

java - 在 Fragment 中使用 Kotlin ViewBinding 时出现 NullPointerException

android - 如何以编程方式覆盖 "Google Voice Search"而不是 "Samsung powered by Vlingo"?

android - 支持 Android 的手机的最低要求

javascript - 初始加载后 Child_Added 不再返回完整数据

javascript - AngularFire推送功能

android - 如何使用 Crittercism 手动发送异常?

java - ScrollView 高度不适合其内容 - Android Java

javascript - Firebase存储规则错误: unexpected identifier; function taken from documentation

ios - Crittercism 使 xamarin 构建的 iOS 应用程序崩溃

iOS - MailCore - 在 MCData.cc 崩溃 -appendBytes