Как определить причины зависания приложения, когда приложение возвращается из состояния паузы?

Мое приложение сталкивается с очень странным поведением:

Приложение запускается нормально;Я оставляю приложение для другого или возвращаюсь на домашний экран телефона;Когда я пытаюсь вернуться к предыдущему экземпляру приложения, он зависает до тех пор, пока не получит сообщение «Приложение не отвечает, принудительно закройте его?»;

Я знаю, это звучит как какая-то утечка памяти или проблема с зависанием цикла, но такое поведение является совершенно случайным (иногда я выполняю шаги, описанные выше, дважды, и у меня возникает проблема, в других случаях я делаю это десять раз, пока не получаю ошибку). В LogCat не генерируется никаких исключений. В мониторе выделенная память никогда не взрывается и остается ниже свободной памяти. Я использовал анализатор памяти, и в отчете ничего странного не показывается.

Я уже заметил, что, когда я использую вращатели загрузчика в своей Деятельности, количество раз, необходимое для выполнения описанных выше шагов, чтобы приложение могло аварийно завершить работу, - иногда выполнение их один раз приводит к падению приложения.

У кого-нибудь есть предложение, что я могу сделать, чтобы выяснить, что может быть причиной этой проблемы?

Спасибо.

РЕДАКТИРОВАТЬ

Это может происходить в любой из операций приложения, Logcat и код можно найти ниже:

Все мои действия являются потомками этого шаблона:

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'
РЕДАКТИРОВАТЬ 2

Похоже, что эта проблема связана с использованием Firebase и Google Services, однако мне нужны оба в моем приложении. Я использую их так:

В верхнем файле gradle: classpath 'com.google.gms: google-services: 3.0.0'

В моем файле приложения Gradle:

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'

Ответы на вопрос(1)

Ваш ответ на вопрос