Revert "Remove multidex as not needed without guava/apache, upgrade leakcanary to fix crash"

This reverts commit 6e33ae22012218baef08dad7bc860138e536627d.
This commit is contained in:
Sean Mac Gillicuddy 2019-05-15 13:47:21 +01:00
parent 6e33ae2201
commit 4370ee61e9
2 changed files with 36 additions and 10 deletions

View File

@ -49,6 +49,9 @@ dependencies {
implementation "com.android.support:support-v4:$supportLibraryVersion"
implementation "com.android.support:design:$supportLibraryVersion"
implementation "com.android.support:cardview-v7:$supportLibraryVersion"
implementation 'com.android.support:multidex:1.0.2'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.3'
@ -117,8 +120,19 @@ dependencies {
androidTestImplementation "org.mockito:mockito-android:2.24.5"
// Leak canary
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0-alpha-1'
implementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
// Only enable leak canary in debug builds
configurations.all { config ->
if (config.name.contains('debug') || config.name.contains("Debug")) {
config.resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.squareup.leakcanary' &&
details.requested.name == 'leakcanary-android-no-op') {
details.useTarget(group: details.requested.group, name: 'leakcanary-android',
version: details.requested.version)
}
}
}
}
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation "android.arch.lifecycle:extensions:1.1.1"
@ -152,6 +166,7 @@ android {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// See https://github.com/linkedin/dexmaker/issues/65 for why we need the following line.
testInstrumentationRunnerArguments.notClass = 'com.android.dex.DexIndexOverflowException'
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
}

View File

@ -18,21 +18,26 @@
package org.kiwix.kiwixmobile;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.os.Environment;
import android.support.v7.app.AppCompatDelegate;
import android.support.multidex.MultiDexApplication;
import android.util.Log;
import android.support.v7.app.AppCompatDelegate;
import com.squareup.leakcanary.LeakCanary;
import org.kiwix.kiwixmobile.di.components.ApplicationComponent;
import org.kiwix.kiwixmobile.di.components.DaggerApplicationComponent;
import org.kiwix.kiwixmobile.di.modules.ApplicationModule;
import java.io.File;
import java.io.IOException;
import javax.inject.Inject;
import dagger.android.AndroidInjector;
import dagger.android.DispatchingAndroidInjector;
import dagger.android.HasActivityInjector;
import java.io.File;
import java.io.IOException;
import javax.inject.Inject;
import org.kiwix.kiwixmobile.di.components.ApplicationComponent;
import org.kiwix.kiwixmobile.di.components.DaggerApplicationComponent;
public class KiwixApplication extends Application implements HasActivityInjector {
public class KiwixApplication extends MultiDexApplication implements HasActivityInjector {
private static KiwixApplication application;
private static ApplicationComponent applicationComponent;
@ -70,6 +75,11 @@ public class KiwixApplication extends Application implements HasActivityInjector
@Override
public void onCreate() {
super.onCreate();
if (LeakCanary.isInAnalyzerProcess(this)) {
// This process is dedicated to LeakCanary for heap analysis.
// You should not init your app in this process.
return;
}
if (isExternalStorageWritable()) {
File appDirectory = new File(Environment.getExternalStorageDirectory() + "/Kiwix");
logFile = new File(appDirectory, "logcat.txt");
@ -101,6 +111,7 @@ public class KiwixApplication extends Application implements HasActivityInjector
Log.d("KIWIX", "Started KiwixApplication");
applicationComponent.inject(this);
LeakCanary.install(this);
}
/* Checks if external storage is available for read and write */