J'ai eu un problème et je ne sais pas comment le résoudre.
Mon projet utilise crashlytics, mais il se bloque toujours et ne génère pas de rapport J'ai une exception TimeoutException:
08-25 03:04:31.876 2856-2856/connectivit.app E/Fabric﹕ Failed to execute task.
Java.util.concurrent.TimeoutException
at Java.util.concurrent.FutureTask.get(FutureTask.Java:176)
at com.crashlytics.Android.core.CrashlyticsExecutorServiceWrapper.executeSyncLoggingException(CrashlyticsExecutorServiceWrapper.Java:44)
at com.crashlytics.Android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.Java:275)
at Java.lang.ThreadGroup.uncaughtException(ThreadGroup.Java:693)
at Java.lang.ThreadGroup.uncaughtException(ThreadGroup.Java:690)
--------- beginning of crash
08-25 03:04:31.876 2856-2856/connectivit.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: connectivit.app, PID: 2856
Java.lang.RuntimeException: Unable to start activity ComponentInfo{connectivit.app/connectivit.app.Activity.Main.MainActivity}: Java.lang.RuntimeException: This is a crash
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2298)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2360)
at Android.app.ActivityThread.access$800(ActivityThread.Java:144)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1278)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:135)
at Android.app.ActivityThread.main(ActivityThread.Java:5221)
at Java.lang.reflect.Method.invoke(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:372)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:899)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:694)
Caused by: Java.lang.RuntimeException: This is a crash
at connectivit.app.Activity.Main.MainActivity.initTabs(MainActivity.Java:117)
at connectivit.app.Activity.Main.MainActivity.onCreate(MainActivity.Java:57)
at Android.app.Activity.performCreate(Activity.Java:5933)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1105)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2251)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2360)
at Android.app.ActivityThread.access$800(ActivityThread.Java:144)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1278)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:135)
at Android.app.ActivityThread.main(ActivityThread.Java:5221)
at Java.lang.reflect.Method.invoke(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:372)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:899)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:694)
MODIFIER
Mon fichier build.gradle:
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'
repositories {
maven { url "https://jitpack.io" }
maven { url 'https://maven.fabric.io/public' }
}
Android {
signingConfigs {
release {
keyAlias 'Android.keystore'
storeFile file('/Users/jordan/Android.keystore.jks')
storePassword ""
keyPassword ""
}
config {
keyAlias 'androiddebugkey'
keyPassword 'Android'
storeFile file('/Users/jordan/.Android/debug.keystore')
storePassword 'Android'
}
}
compileSdkVersion 23
buildToolsVersion '23'
defaultConfig {
applicationId “com.test"
minSdkVersion 14
targetSdkVersion 23
versionCode 12
versionName '1'
// Enabling multidex support.
multiDexEnabled true
}
buildTypes {
debug {
versionNameSuffix "-DEBUG"
}
release {
minifyEnabled true
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
lintOptions {
// set to true to turn off analysis progress reporting by lint
quiet false
// if true, stop the gradle build if errors are found
abortOnError false
// if true, only report errors
ignoreWarnings true
}
productFlavors {
}
}
dependencies {
//--- Android
compile 'com.Android.support:design:23.0.0'
compile 'com.Android.support:appcompat-v7:23.0.0'
compile 'com.Android.support:multidex:1.0.0'
//--- Fabric
compile('com.crashlytics.sdk.Android:crashlytics:2.4.0@aar') {
transitive = true;
}
}
Initialisation de Crashlytics:
public class MyApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());
if (!BuildConfig.DEBUG) {
Log.d("Ez", "Release mode. Crashlytics enable");
//Fabric.with(this, new Crashlytics());
} else {
Log.d("Ez", "Debug mode. Crashlytics disable");
}
throw new RuntimeException("This is a crash");
}
}
J'ai corrigé la TimeoutException
en ajoutant ce qui suit à mon build.gradle
ext.enableCrashlytics = true
Ou si vous avez déjà plusieurs extensions:
ext {
...
enableCrashlytics = true
}
J'ai aussi ce problème. Je l'ai résolu simplement en faisant Android Studio -> File -> Invalidate Caches / Restart -> Invalidate and restart
Pour ceux qui ont encore du mal à résoudre ce problème, je l'ai résolu en installant le plug-in de studio d'Android directement via Paramètres-> Plugins Android studio et en laissant le plug-in éditer mon code graduellement. Vous pouvez le voir se faire ici: https://www.youtube.com/watch?v=Qvqr6vGzxIs
Vérifiez votre fichier AndroidManifest.xml , il contient tous les doublons du fournisseur ou écrit plus de deux fois qui sont assis.
Parce que, Ce problème est survenu sur certains périphériques, avant que je rencontre un problème et ceci est ma solution finale.