@@ -40,6 +40,7 @@ def nodeModulesDir = "../../node_modules/"
4040def libDir = " ../../lib/Android/"
4141def pluginNames = new ArrayList<String > ()
4242def configDir = file(configurationsDir)
43+ def firstApplicationBuildType = " "
4344
4445def compiteCompileSdkVersion () {
4546 if (project. hasProperty(" compileSdk" )) {
@@ -127,8 +128,12 @@ android {
127128
128129 applicationVariants. all { variant ->
129130 renameResultApks(variant)
131+
132+ if (firstApplicationBuildType == " " ) {
133+ firstApplicationBuildType = variant. buildType. name;
134+ }
130135
131- def mergeAssetsTask = variant. mergeAssets
136+ def mergeAssetsTask = variant. dex
132137 if (project. hasProperty(" runSBGenerator" )) {
133138 runBindingGenerator. dependsOn(copyMetadata)
134139 rbg. dependsOn(runBindingGenerator)
@@ -318,10 +323,6 @@ task cleanLocalAarFiles(type: Delete) {
318323 delete fileTree(dir : " libs/aar" , include : [" *.aar" ])
319324}
320325
321- task deleteJavaDir (type : Delete ) {
322- delete " $rootDir /src/main/java"
323- }
324-
325326task ensureMetadataOutDir {
326327 def outputDir = file(" $rootDir /metadata/output" )
327328 outputDir. mkdirs()
@@ -347,6 +348,8 @@ task collectAllJars {
347348 allJarPaths. add(currentJarFile. getAbsolutePath())
348349 }
349350
351+ allJarPaths. add(" $rootDir /build/intermediates/classes" );
352+
350353 metadataParams. add(" metadata-generator.jar" )
351354 metadataParams. add(" ../metadata/output" )
352355 for (def i = 0 ; i < allJarPaths. size(); i++ ) {
@@ -355,30 +358,14 @@ task collectAllJars {
355358 }
356359}
357360
358- task isMetadataGenerationNecessary {
359- description " checks if new metadata is necessary based on jar and aar dependencies used"
360- def inputFile = new File (" build/metadataUTD" )
361- def metadataDir = new File (" metadata/output" );
362-
363- inputs. file inputFile
364- outputs. upToDateWhen {
365- inputFile. exists() &&
366- metadataDir. exists() &&
367- metadataDir. list(). length == 3 &&
368- (inputFile. text. trim() == metadataParams. toString(). trim())
369- }
370-
371- doLast {
372- inputFile. text = metadataParams
373- }
374- }
375-
376361task buildMetadata (type : JavaExec ) {
377362 description " builds metadata with provided jar dependencies"
378- outputs. upToDateWhen {
379- ! isMetadataGenerationNecessary. didWork
380- }
381363
364+ inputs. files(allJarPaths)
365+ inputs. dir(" build/intermediates/classes" )
366+
367+ outputs. files(" metadata/output/treeNodeStream.dat" , " metadata/output/treeStringsStream.dat" , " metadata/output/treeValueStream.dat" )
368+
382369 doFirst {
383370 workingDir " build-tools"
384371
@@ -395,16 +382,16 @@ task copyMetadata(type: Copy) {
395382 }
396383
397384 from " metadata/output"
398- into " src/main /assets/metadata"
385+ into " build/intermediates /assets/ $f irstApplicationBuildType /metadata"
399386}
400387
401388
402389task deleteExplodedAarFolder (type : Delete ) {
403390
404391 outputs. upToDateWhen {
405- ! isMetadataGenerationNecessary . didWork
392+ ! buildMetadata . didWork
406393 }
407-
394+
408395 def explodedAarDir = project. buildDir. getAbsolutePath() + " /intermediates/exploded-aar"
409396 delete explodedAarDir
410397}
@@ -433,11 +420,9 @@ task rbg (dependsOn: "asbg:generatebindings")
433420// 5. plugin extend (apply from include files)
434421
435422// --execution phase
436- deleteJavaDir. dependsOn(cleanLocalAarFiles)
437- ensureMetadataOutDir. dependsOn(deleteJavaDir)
423+ ensureMetadataOutDir. dependsOn(cleanLocalAarFiles)
438424collectAllJars. dependsOn(ensureMetadataOutDir)
439- isMetadataGenerationNecessary. dependsOn(collectAllJars)
440- buildMetadata. dependsOn(isMetadataGenerationNecessary)
425+ buildMetadata. dependsOn(collectAllJars)
441426copyMetadata. dependsOn(buildMetadata)
442427
443428// DO NOT UNCOMMENT
0 commit comments