Firebase Android在为apk签名调用authWithPassword时崩溃
问题描述:
我有一个奇怪的崩溃的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'
}
请你给我一个提示! 谢谢,
答
不知道背后是什么,但似乎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);
}
好找Ricky! –