Wie werden App-Einfrierursachen erkannt, wenn die App aus dem Pausenstatus zurückkehrt?

Meine App sieht sich einem wirklich seltsamen Verhalten gegenüber:

App wird normal gestartet;Ich beende die App für eine andere oder kehre zum Startbildschirm des Telefons zurück.Wenn ich versuche, zur vorherigen App-Instanz zurückzukehren, hängt es, bis ich die Meldung erhalte, dass die App nicht reagier

Ich weiß, es klingt wie ein Speicherleck oder ein Schleifenproblem, aber dieses Verhalten ist völlig zufällig (manchmal führe ich die obigen Schritte zweimal aus und bekomme das Problem, manchmal mache ich es zehnmal, bis der Fehler auftritt). Im Logcat wird keine Ausnahme ausgelöst. Im Monitor explodiert der zugewiesene Speicher niemals und bleibt unter dem freien Speicher. Ich habe den Speicheranalysator verwendet und im Bericht wird nichts Seltsames angezeigt.

Ich habe bereits festgestellt, dass die Häufigkeit, mit der die oben genannten Schritte ausgeführt werden, um einen Absturz der App zu verursachen, abnimmt, wenn ich Loader-Spinner in meiner Aktivität verwende. Manchmal führt dies dazu, dass die App abstürzt.

Hat jemand einen Vorschlag, was ich tun kann, um herauszufinden, was dieses Problem verursachen könnte?

Vielen Dank

BEARBEITE

Dieses Verhalten kann bei allen Aktivitäten der App auftreten. Logcat und Code befinden sich im Folgenden:

Alle meine Aktivitäten stammen von dieser Vorlage ab:

public abstract class ActivityTemplate extends AppCompatActivity {

    private Boolean isRunning = Boolean.TRUE;

    private ToolbarManager mToolbarManager;
    private ActivitySetup mSetup;

    public abstract ActivitySetup setUpActivity();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mToolbarManager = new ToolbarManager();
        mSetup = setUpActivity();
        setContentView(mSetup.getContentView());
        ButterKnife.bind(this);
        prepareToolbar();
        registerForEvents();
        this.startResources();
    }

    private void prepareToolbar() {
        if (mSetup.getHasToolbar()) {
            mToolbarManager.initToolbar(this, mSetup.getTitle(), R.id.toolbar, R.color.textPrimary);
            if (mSetup.getDefaultReturnBehavior()) {
                mToolbarManager.setNavigationReturnBehavior();
            }
            mToolbarManager.prepareNavigationBehavior(mSetup.getNavigationIcon(), mSetup.getOnNavigationItemClicked());
        }
    }

    public void startResources() {
    }

    @Override
    public void onDestroy() {
        this.unregisterForEvents();
        super.onDestroy();
    }

    @Override
    protected void onPause() {
        super.onPause();
        this.isRunning = Boolean.FALSE;
    }

    @Override
    protected void onResume() {
        super.onResume();
        this.isRunning = Boolean.TRUE;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return super.onCreateOptionsMenu(menu);
    }

    public void registerForEvents() {
        Map<EventCatalog, TaskExecutor> executors = this.setEventHandlers();
        if (null != executors && executors.size() > 0) {
            for (EventCatalog event : executors.keySet()) {
                NotificationCenter.RegistrationCenter.registerForEvent(event, executors.get(event));
            }
        }
    }

    public void unregisterForEvents() {
        Map<EventCatalog, TaskExecutor> executors = this.setEventHandlers();
        if (null != executors && executors.size() > 0) {
            for (EventCatalog key : executors.keySet()) {
                NotificationCenter.RegistrationCent,er.unregisterForEvent(key, executors.get(key));
            }
        }
    }

    public boolean isRunning() {
        return this.isRunning;
    }

    public Toolbar getToolbar() {
        return mToolbarManager.getToolbar();
    }

    public Map<EventCatalog, TaskExecutor> setEventHandlers() {
        return null;
    }
}



06-13 10:39:11.258 25215-25271/br.com.gogame I/Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: EGL 1.4 QUALCOMM build: Nondeterministic_AU_msm8974_LA.BF.1.1.3_RB1__release_AU (I3193f6e94a)
                                                               OpenGL ES Shader Compiler Version: E031.28.00.02
                                                               Build Date: 10/09/15 Fri
                                                               Local Branch: mybranch15039904
                                                               Remote Branch: quic/LA.BF.1.1.3_rb1.2
                                                               Local Patches: NONE
                                                               Reconstruct Branch: NOTHING
    06-13 10:39:11.274 25215-25271/br.com.gogame I/OpenGLRenderer: Initialized EGL, version 1.4
    06-13 10:39:11.315 25215-25215/br.com.gogame E/RecyclerView: No adapter attached; skipping layout
    06-13 10:39:11.315 25215-25215/br.com.gogame E/RecyclerView: No adapter attached; skipping layout
    06-13 10:39:11.601 25215-25215/br.com.gogame E/RecyclerView: No adapter attached; skipping layout
    06-13 10:39:11.601 25215-25215/br.com.gogame E/RecyclerView: No adapter attached; skipping layout
    06-13 10:39:11.640 25215-25215/br.com.gogame E/RecyclerView: No adapter attached; skipping layout
    06-13 10:39:11.640 25215-25215/br.com.gogame E/RecyclerView: No adapter attached; skipping layout
    06-13 10:39:20.864 25215-25241/br.com.gogame E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/br.com.gogame-1/base.apk"],nativeLibraryDirectories=[/data/app/br.com.gogame-1/lib/arm, /data/app/br.com.gogame-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
    06-13 10:39:25.202 25575-25575/br.com.gogame:background_crash E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.android.gms.crash.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/br.com.gogame-1/base.apk"],nativeLibraryDirectories=[/data/app/br.com.gogame-1/lib/arm, /data/app/br.com.gogame-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
    06-13 10:39:25.239 25575-25575/br.com.gogame:background_crash D/ChimeraCfgMgr: Reading stored module config
    06-13 10:39:25.299 25575-25575/br.com.gogame:background_crash I/DynamiteModule: Considering local module com.google.android.gms.crash:0 and remote module com.google.android.gms.crash:2
    06-13 10:39:25.299 25575-25575/br.com.gogame:background_crash I/DynamiteModule: Selected remote version of com.google.android.gms.crash, version >= 2
    06-13 10:39:25.312 25575-25575/br.com.gogame:background_crash W/System: ClassLoader referenced unknown path: /data/user/0/com.google.android.gms/app_chimera/m/00000002/n/armeabi-v7a
    06-13 10:39:25.312 25575-25575/br.com.gogame:background_crash W/System: ClassLoader referenced unknown path: /data/user/0/com.google.android.gms/app_chimera/m/00000002/n/armeabi
    06-13 10:39:25.313 25575-25575/br.com.gogame:background_crash D/ChimeraFileApk: Primary ABI of requesting process is armeabi-v7a
    06-13 10:39:25.314 25575-25575/br.com.gogame:background_crash D/ChimeraFileApk: Classloading successful. Optimized code found.
    06-13 10:39:25.334 25575-25575/br.com.gogame:background_crash I/FirebaseCrashReceiverServiceImpl: FirebaseCrashReceiverServiceImpl created by ClassLoader com.google.android.chimera.container.internal.DelegateLastPathClassLoader[DexPathList[[zip file "/data/user/0/com.google.android.gms/app_chimera/m/00000002/DynamiteModulesC_GmsCore_prodmnc_xxhdpi_release.apk"],nativeLibraryDirectories=[/data/user/0/com.google.android.gms/app_chimera/m/00000002/n/armeabi-v7a, /data/user/0/com.google.android.gms/app_chimera/m/00000002/n/armeabi, /vendor/lib, /system/lib]]]
    06-13 10:39:25.340 25575-25575/br.com.gogame:background_crash D/FirebaseCrashReceiverServiceImpl: onCreate
    06-13 10:39:25.345 25575-25575/br.com.gogame:background_crash I/DynamiteModule: Considering local module com.google.android.gms.flags:0 and remote module com.google.android.gms.flags:1
    06-13 10:39:25.345 25575-25575/br.com.gogame:background_crash I/DynamiteModule: Selected remote version of com.google.android.gms.flags, version >= 1
    06-13 10:39:25.379 25575-25575/br.com.gogame:background_crash I/FirebaseCrashSenderServiceImpl: FirebaseCrashSenderServiceImpl created by ClassLoader com.google.android.chimera.container.internal.DelegateLastPathClassLoader[DexPathList[[zip file "/data/user/0/com.google.android.gms/app_chimera/m/00000002/DynamiteModulesC_GmsCore_prodmnc_xxhdpi_release.apk"],nativeLibraryDirectories=[/data/user/0/com.google.android.gms/app_chimera/m/00000002/n/armeabi-v7a, /data/user/0/com.google.android.gms/app_chimera/m/00000002/n/armeabi, /vendor/lib, /system/lib]]]
    06-13 10:39:25.379 25575-25575/br.com.gogame:background_crash D/FirebaseCrashSenderServiceImpl: onCreate
    06-13 10:40:46.438 25215-25215/br.com.gogame D/FirebaseApp: Notifying background state change listeners.
    06-13 10:40:46.469 25215-25271/br.com.gogame E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb9fb34d0
    06-13 10:40:47.348 25215-26924/br.com.gogame I/DynamiteModule: Considering local module com.google.android.gms.tagmanager:1 and remote module com.google.android.gms.tagmanager:2
    06-13 10:40:47.348 25215-26924/br.com.gogame I/DynamiteModule: Selected remote version of com.google.android.gms.tagmanager, version >= 2
    06-13 10:40:47.428 25215-25215/br.com.gogame D/FirebaseApp: Notifying background state change listeners.
    06-13 10:40:47.738 25215-26924/br.com.gogame W/GoogleTagManager: Tag Manager's event handler WILL NOT be installed (no container loaded)
    06-13 10:40:48.273 25215-25271/br.com.gogame E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb9f87b18
    06-13 10:40:48.296 25215-25215/br.com.gogame D/FirebaseApp: Notifying background state change listeners.
06-13 10:44:08.361 25215-25221/br.com.gogame I/art: Thread[2,tid=25221,WaitingInMainSignalCatcherLoop,Thread*=0xb9ce2a10,peer=0x12d270a0,"Signal Catcher"]: reacting to signal 3
06-13 10:44:08.713 25215-25221/br.com.gogame I/art: Wrote stack traces to '/data/anr/traces.txt'
EDIT 2

Es sieht so aus, als ob dieses Problem mit der Verwendung von Firebase und Google Services zusammenhängt. Ich benötige jedoch beide in meiner App. Die Art, wie ich sie benutze, ist:

Auf Top-Gradle-Datei: Klassenpfad 'com.google.gms: google-services: 3.0.0'

Auf meiner App-Gradle-Datei:

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    dexOptions {
        javaMaxHeapSize "4g"
    }

    defaultConfig {
        applicationId "br.com.gogame"
        minSdkVersion 21
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:1.10.19'

    // GOOGLE LIBRARIES
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:recyclerview-v7:23.4.0'
    compile 'com.android.support:cardview-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.google.firebase:firebase-messaging:9.0.0'
    compile 'com.google.guava:guava:18.0'
    compile 'com.google.code.gson:gson:2.4'
    compile 'com.google.dagger:dagger:2.1'
    compile 'com.android.volley:volley:1.0.0'

    // APACHE LIBRARIES
    compile 'org.apache.httpcomponents:httpmime:4.0-alpha3'

    // OWN THIRD LIBRARIES
    compile 'br.com.instachat:emoji-library:1.0.6'
    compile 'br.com.edsilfer:kiwi:1.0.8'

    // THIRD PART LIBRARIES
    compile 'com.mikhaellopez:circularimageview:2.0.2'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.github.vajro:MaterialDesignLibrary:1.6'
    compile 'com.ogaclejapan.smarttablayout:library:1.6.0@aar'
    compile 'com.github.rey5137:material:1.2.2'
    compile 'com.appyvet:materialrangebar:1.3'
    compile 'com.github.afollestad.material-dialogs:core:0.8.5.6@aar'
    compile 'com.wang.avi:library:1.0.5'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.mikepenz:aboutlibraries:5.6.5@aar'
    compile 'com.jakewharton:butterknife:8.0.1'
    compile 'com.wdullaer:materialdatetimepicker:2.3.0'
    compile 'javax.inject:javax.inject:1'
    compile 'com.github.satyan:sugar:1.5'
    compile 'pl.droidsonroids.gif:android-gif-drawable:1.1.15'
    compile 'com.yalantis:ucrop:1.5.0'

    apt 'com.jakewharton:butterknife-compiler:8.0.1'
    apt 'com.google.dagger:dagger-compiler:2.1'

    provided 'javax.annotation:jsr250-api:1.0'
}

apply plugin: 'com.google.gms.google-services'

Antworten auf die Frage(2)

Ihre Antwort auf die Frage