File tree Expand file tree Collapse file tree 7 files changed +67
-5
lines changed
src/main/java/com/example Expand file tree Collapse file tree 7 files changed +67
-5
lines changed Original file line number Diff line number Diff line change @@ -53,12 +53,13 @@ android {
53
53
*/
54
54
dependencies {
55
55
// App's dependencies, including test
56
+ compile fileTree(dir : project(' :guava_custom' ). file(' libs/' ), include : [' *.jar' ])
57
+
56
58
compile " com.android.support:appcompat-v7:$rootProject . supportLibraryVersion "
57
59
compile " com.android.support:cardview-v7:$rootProject . supportLibraryVersion "
58
60
compile " com.android.support:design:$rootProject . supportLibraryVersion "
59
61
compile " com.android.support:recyclerview-v7:$rootProject . supportLibraryVersion "
60
62
compile " com.android.support:support-v4:$rootProject . supportLibraryVersion "
61
- compile " com.google.guava:guava:$rootProject . guavaVersion "
62
63
compile " com.android.support.test.espresso:espresso-idling-resource:$rootProject . espressoVersion "
63
64
64
65
// Dependencies for local unit tests
Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ buildscript {
3
3
jcenter()
4
4
}
5
5
dependencies {
6
- classpath ' com.android.tools.build:gradle:2.1.0-alpha4 '
6
+ classpath ' com.android.tools.build:gradle:2.1.0-alpha5 '
7
7
8
8
// NOTE: Do not place your application dependencies here; they belong
9
9
// in the individual module build.gradle files
@@ -30,12 +30,11 @@ ext {
30
30
31
31
// App dependencies
32
32
supportLibraryVersion = ' 23.1.1'
33
- guavaVersion = ' 18.0'
34
33
junitVersion = ' 4.12'
35
34
mockitoVersion = ' 1.10.19'
36
35
powerMockito = ' 1.6.2'
37
36
hamcrestVersion = ' 1.3'
38
37
runnerVersion = ' 0.4.1'
39
38
rulesVersion = ' 0.4.1'
40
39
espressoVersion = ' 2.2.1'
41
- }
40
+ }
Original file line number Diff line number Diff line change
1
+ /build
Original file line number Diff line number Diff line change
1
+ apply plugin : ' java'
2
+ buildscript {
3
+ repositories {
4
+ mavenCentral()
5
+ }
6
+ dependencies {
7
+ classpath ' net.sf.proguard:proguard-gradle:5.2.1'
8
+ }
9
+ }
10
+
11
+ configurations {
12
+ injar
13
+ libjar
14
+ }
15
+
16
+ String getClassesJar (String platform ) {
17
+ def javaHome = System . properties. ' java.home'
18
+ switch (platform. replaceAll(' ' , ' ' ). toLowerCase()) {
19
+ case ~/ .*osx.*/ :
20
+ return " $javaHome /../Classes/classes.jar"
21
+ case ~/ .*linux.*/ :
22
+ case ~/ .*darwin.*/ :
23
+ case ~/ .*win.*/ :
24
+ return " $javaHome /lib/rt.jar"
25
+ default : throw new GradleException (' unable to determine java runtime classes!' )
26
+ }
27
+ }
28
+
29
+ def guavaVersion = ' 18.0'
30
+ def classesJar = files(getClassesJar(System . properties[' os.name' ]))
31
+
32
+ // noinspection GradleImproperProjectLevelStatement
33
+ dependencies {
34
+ injar " com.google.guava:guava:${ guavaVersion} "
35
+ libjar ' com.google.code.findbugs:jsr305:3.0.0'
36
+ libjar classesJar
37
+ }
38
+
39
+ /**
40
+ * Run proguard to shrink guava to only include the stuff we specify and its dependencies.
41
+ */
42
+ task createCustomGuava (type : proguard.gradle.ProGuardTask ) {
43
+ injars configurations. injar. files
44
+ libraryjars configurations. libjar. files
45
+ outjars file(" libs/guava_${ guavaVersion} _base.jar" )
46
+ dontoptimize
47
+ dontobfuscate
48
+ keep ''' public class com.google.common.base.** {
49
+ public *;
50
+ }'''
51
+ keep ''' public class com.google.common.collect.** {
52
+ public *;
53
+ }'''
54
+ keep ''' public class com.google.common.reflect.** {
55
+ public *;
56
+ }'''
57
+ }
Original file line number Diff line number Diff line change
1
+ package com .example ;
2
+
3
+ public class MyClass {
4
+ }
Original file line number Diff line number Diff line change 1
- include ' :app'
1
+ include ' :app' , ' :guava_custom '
You can’t perform that action at this time.
0 commit comments