From 14ed44384eb83e2e83986bf1a64e33f8d7952c3b Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 21 Jun 2016 11:02:46 -0500 Subject: [PATCH] Enable MultiDex --- .travis.yml | 12 ++--- build.gradle | 54 +++++++++++++------ .../tasks/injection/InjectingApplication.java | 4 +- 3 files changed, 46 insertions(+), 24 deletions(-) diff --git a/.travis.yml b/.travis.yml index 25ae7b37d..737ea3b97 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,9 +7,9 @@ env: android: components: - tools # https://github.com/travis-ci/travis-ci/issues/5049 - - android-23 - - platform-tools-23.1 - - build-tools-23.0.3 + - android-24 + - platform-tools-24 + - build-tools-24.0.0 - extra-android-m2repository - extra-google-m2repository licenses: @@ -22,9 +22,9 @@ before_install: - adb shell input keyevent 82 & script: - - ./gradlew :lintGoogleplayDebug - - ./gradlew :createGoogleplayDebugAndroidTestCoverageReport + - ./gradlew :lintGoogleplayProdDebug + - ./gradlew :createGoogleplayProdDebugAndroidTestCoverageReport after_success: - - mv build/reports/coverage/googleplay/debug/report.xml build/reports/coverage/googleplay/debug/coverage.xml + - mv build/reports/coverage/googleplayProd/debug/report.xml build/reports/coverage/googleplayProd/debug/coverage.xml - bash <(curl -s https://codecov.io/bash) diff --git a/build.gradle b/build.gradle index 1376cdd69..f47118d7c 100644 --- a/build.gradle +++ b/build.gradle @@ -36,7 +36,8 @@ android { versionName "4.8.17" minSdkVersion 14 targetSdkVersion 24 - + multiDexEnabled true + testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner" // jackOptions { // enabled true // } @@ -55,8 +56,6 @@ android { buildTypes { debug { - minifyEnabled true - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.pro' testCoverageEnabled true } release { @@ -78,10 +77,25 @@ android { buildTypes.release.signingConfig = null } + flavorDimensions 'store', 'env' + productFlavors { - generic - googleplay - amazon + generic { + dimension 'store' + } + googleplay { + dimension 'store' + } + amazon { + dimension 'store' + } + dev { + dimension 'env' + minSdkVersion 21 + } + prod { + dimension 'env' + } } } @@ -90,19 +104,25 @@ configurations { all*.exclude group: 'org.apache.httpcomponents', module: 'httpclient' } +final DAGGER_VERSION = '2.4' +final BUTTERKNIFE_VERSION = '8.1.0' +final GPS_VERSION = '9.0.2' +final SUPPORT_VERSION = '24.0.0' + dependencies { - apt 'com.google.dagger:dagger-compiler:2.4' - compile 'com.google.dagger:dagger:2.4' + apt "com.google.dagger:dagger-compiler:${DAGGER_VERSION}" + compile "com.google.dagger:dagger:${DAGGER_VERSION}" - apt 'com.jakewharton:butterknife-compiler:8.1.0' - compile 'com.jakewharton:butterknife:8.1.0' + apt "com.jakewharton:butterknife-compiler:${BUTTERKNIFE_VERSION}" + compile "com.jakewharton:butterknife:${BUTTERKNIFE_VERSION}" debugCompile 'com.facebook.stetho:stetho:1.3.1' debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta2' + compile 'com.android.support:multidex:1.0.1' compile 'com.nononsenseapps:filepicker:2.5.2' - compile 'com.android.support:design:24.0.0' - compile 'com.android.support:support-v13:24.0.0' + compile "com.android.support:design:${SUPPORT_VERSION}" + compile "com.android.support:support-v13:${SUPPORT_VERSION}" compile 'com.jakewharton.timber:timber:4.1.2' compile 'com.google.guava:guava:19.0' compile ('com.rubiconproject.oss:jchronic:0.2.6') { @@ -117,14 +137,16 @@ dependencies { googleplayCompile 'com.google.android.apps.dashclock:dashclock-api:2.0.0' googleplayCompile 'com.twofortyfouram:android-plugin-api-for-locale:[1.0.1,2.0[' - googleplayCompile 'com.google.android.gms:play-services-location:9.0.2' - googleplayCompile 'com.google.android.gms:play-services-analytics:9.0.2' - googleplayCompile 'com.google.android.gms:play-services-auth:9.0.2' + googleplayCompile "com.google.android.gms:play-services-location:${GPS_VERSION}" + googleplayCompile "com.google.android.gms:play-services-analytics:${GPS_VERSION}" + googleplayCompile "com.google.android.gms:play-services-auth:${GPS_VERSION}" googleplayCompile 'com.google.apis:google-api-services-tasks:v1-rev45-1.22.0' googleplayCompile 'com.google.api-client:google-api-client-android:1.22.0' - amazonCompile 'com.google.android.gms:play-services-analytics:9.0.2' + amazonCompile "com.google.android.gms:play-services-analytics:${GPS_VERSION}" + androidTestApt "com.google.dagger:dagger-compiler:${DAGGER_VERSION}" + androidTestApt "com.jakewharton:butterknife-compiler:${BUTTERKNIFE_VERSION}" androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2' androidTestCompile 'com.natpryce:make-it-easy:4.0.0' } diff --git a/src/main/java/org/tasks/injection/InjectingApplication.java b/src/main/java/org/tasks/injection/InjectingApplication.java index 7770c4c77..197e56e4a 100644 --- a/src/main/java/org/tasks/injection/InjectingApplication.java +++ b/src/main/java/org/tasks/injection/InjectingApplication.java @@ -1,8 +1,8 @@ package org.tasks.injection; -import android.app.Application; +import android.support.multidex.MultiDexApplication; -public abstract class InjectingApplication extends Application { +public abstract class InjectingApplication extends MultiDexApplication { private ApplicationComponent applicationComponent;