Skip to content

Commit 9ad80bf

Browse files
feat: reduce aar size by removing R.class and BuildConfig.class (#5644)
see https://www.mobileit.cz/Blog/Pages/r-class.aspx In case a plugin needs these, they can still be enabled with `generateBuildConfig` and `generateR` properties. Co-authored-by: Igor Randjelovic <[email protected]>
1 parent 1435eef commit 9ad80bf

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

vendor/gradle-plugin/build.gradle

+23-1
Original file line numberDiff line numberDiff line change
@@ -202,4 +202,26 @@ task addDependenciesFromNativeScriptPlugins {
202202

203203
project.dependencies.add("implementation", jarFiles)
204204
}
205-
}
205+
}
206+
207+
afterEvaluate {
208+
def generateBuildConfig = project.hasProperty("generateBuildConfig") ? project.generateBuildConfig : false
209+
def generateR = project.hasProperty("generateR") ? project.generateR : false
210+
generateReleaseBuildConfig.enabled = generateBuildConfig
211+
generateDebugBuildConfig.enabled = generateBuildConfig
212+
generateReleaseResValues.enabled = generateR
213+
generateDebugResValues.enabled = generateR
214+
}
215+
216+
tasks.whenTaskAdded({ DefaultTask currentTask ->
217+
if (currentTask.name == 'bundleRelease' || currentTask.name == 'bundleDebug') {
218+
def generateBuildConfig = project.hasProperty("generateBuildConfig") ? project.generateBuildConfig : false
219+
def generateR = project.hasProperty("generateR") ? project.generateR : false
220+
if (!generateBuildConfig) {
221+
currentTask.exclude '**/BuildConfig.class'
222+
}
223+
if (!generateR) {
224+
currentTask.exclude '**/R.class', '**/R$*.class'
225+
}
226+
}
227+
})

vendor/gradle-plugin/gradle.properties

+3
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,6 @@ org.gradle.jvmargs=-Xmx16384M
1818

1919
android.enableJetifier=true
2020
android.useAndroidX=true
21+
android.nonTransitiveRClass=true
22+
android.namespacedRClass=true
23+
android.enableSeparateRClassCompilation=true

0 commit comments

Comments
 (0)