Crashlytics is reporting crashes that happen in DigitsActivity, DigitsActionBarActivity, FailureActivityDelegateImpl.
Crash is: Fatal Exception: java.lang.IllegalAccessError: This activity can only be started from Digits
I get this crash reported a few times for each on every build we release.
These activities are apparently a part of the Fabric/Twitter SDK to sign in with a phone number. However, I am not using them at all! Anyone have an explanation for what could be happening here?
If you don't use Digit's, you could try to only include the Twitter-Core:
Upgrade your gradle to:
dependencies {
compile('com.twitter.sdk.android:twitter-core:1.5.0#aar') {
transitive = true;
}
}
And your application's onCreate to:
Fabric.with(this, new TwitterCore(authConfig));
Related
With the Firebase Crashlytics SDK, the documentation explains how you can
force a crash
However, in the line:
Crashlytics.getInstance().crash();
Crashlytics is unrecognized and cannot be imported.
I tried switching to FirebaseCrashlytics.getInstance() but there is no crash() method.
Note: Crashlytics is indeed set up properly - I am able to cause my own crash by looking up a view that does not exist and it is reported correctly.
We have deprecated the force crash method in the new SDK. One example of a way to force a crash is manually throwing an exception
throw new RuntimeException("This is a crash");
This is the error message:
java.lang.NoClassDefFoundError: Failed resolution of: L**/**/**/**/**/SomeFragment$sam$io_reactivex_functions_Consumer$0;
The stack trace points to a function reference in this code snippet
disposables += state.filter { it == IDLE }
.subscribe({...}, Timber::e)
I think this is probably the following Kotlin Bug: KT-24825
Seems to be fixed in 1.2.60 (build-1.2.60-eap-42).
Maybe you could test the EAP (as soon as it is released).
Otherwise you should report a bug to the Kotlin issue tracker.
Update 2018-07-11
Kotlin 1.2.60 RC (build-1.2.60-eap-44) has been released (incl. the fix for KT-24825). Could you please check, if it fixes your issue?
I'm setting a CrashlyticsListener like instructed here to get a callback on the next app start after crash occurred. crashlyticsDidDetectCrashDuringPreviousExecution() is triggered if the app has crashed in with a Java exception on previous run, but if it has crashed in JNI it's not triggered.
I'm initializing Crashlytics with NDK support
Fabric.with(FiosSdkApplication.getAppContext(), new Crashlytics(), new CrashlyticsNdk());
and I see the crash report being uploaded:
06-08 15:36:03.177 23571-23619/com.organization.test.crashlyticstest I/CrashlyticsCore: Crashlytics report upload complete: 5B1AE89B032E-0001-5B97-8C8248E28ED2
and I see that crash on the dashboard later, but the callback is not being called. Is it supposed to be called after JNI crashes at all? If yes, what am I missing?
The versions of Crashlytics I'm using are the latest I believe:
implementation('com.crashlytics.sdk.android:crashlytics:2.9.3#aar') {
transitive = true
}
implementation('com.crashlytics.sdk.android:crashlytics-ndk:2.0.4#aar') {
transitive = true
}
Mike from Fabric here. At the moment, the CrashlyticsListener doesn't support being called from when an NDK/JNI exception happens.
I am suddenly getting a number of crash reports around this the past few weeks. The crashes indicated missing metadata for certain country code. Most of them have been one of:
PhoneNumberMetadataProto_CN
PhoneNumberMetadataProto_BR
PhoneNumberMetadataProto_IR
The crashes seems to have occurred out of nowhere. I attempted to upgrade the AccountKit version from 4.28.0 to 4.31.0. This resulted in a moving where the crash occurred from com.facebook.accountkit.internal.Utility.parseNumber to com.facebook.accountkit.ui.PhoneNumberTextWatcher.getFormattedNumber but the crash is still occurring.
My next plan of attack is to try including the com.googlecode.libphonenumber dependency directly via Gradle instead of letting it just get included transitively from the AccountKit SDK, but I'm not holding my breath that it will fix the problem. Any other ideas are much appreciated.
I am having same problem here.
i am endup with adding dependency in gradle (like your next plan). Its working fine.
dependencies {
...
compile 'com.googlecode.libphonenumber:libphonenumber:8.+'
}
I have been using firebase authentication without any problem with compile SDK version 26.01 of Android Studio 2.3.3 until yesterday.
However, since I updated to 3.0 yesterday, every time I sign-in, Developer error Toast will appear and my app will be terminated abnormally.
Now I have erased and installed Android studio several times because of this problem.
providers.add(new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build());
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setIsSmartLockEnabled(false)
.setIsSmartLockEnabled(!BuildConfig.DEBUG)
.setLogo(R.drawable.logo_layer)
.setProviders(providers)
.setTheme(R.style.GreenTheme)
.build(),
RC_SIGN_IN);
and the error messages here.
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.firebase.ui.auth.provider.TwitterProvider>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/twitter/sdk/android/core/Callback;
I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.twitter.sdk.android.core.Callback" on path:
These codes really worked perfectly well from version 2.3.3 until yesterday. Now, however, these error messages appear and do not work at all. Even I have used only the google provider in the Auth UI. I did not use Twitter-Provider at all. but suddenly comes like this... I do not know why at all.
And an emulator has been changed also just like below.
And I think this also seems to have a significant impact on the problem, in Firebase Authentication.
I was getting the same error, and like you, I am not specifying Twitter as one of the available sign-in providers.
I was able to eliminate the error by adding the Twitter SDK library to the app dependencies:
implementation ("com.twitter.sdk.android:twitter-core:3.0.0#aar") {
transitive = true
}
Try adding the following repository to your build.gradle:
allprojects {
repositories {
// ...
maven { url 'https://maven.fabric.io/public' }
}
}