Status Update
Comments
cc...@google.com <cc...@google.com>
ma...@google.com <ma...@google.com>
ma...@google.com <ma...@google.com> #2
It seems that some of the custom setup logic you've is causing this issue.
Specifically, the problem seems to be related to the logic in build-logic
in AndroidBuilderPlugin
:
extensions.getByType(AndroidComponentsExtension::class.java).apply {
beforeVariants(selector().all()) { variant ->
when(variant.flavorName) {
"" -> variant.enable = true
"develop" -> variant.enable = variant.buildType == "debug"
else -> variant.enable = variant.buildType == "release"
}
}
}
The plugin creates some additional build types needed to generate the baseline profiles. That logic is disabling variants for with build types that are not release (and flavor not develop
). Removing that logic should fix the issue.
Beside that, I do still see problems though. For example, applying the com.android.test
plugin to the baselineprofile
module causes an exception for missing testImplementation
configuration. This is because test modules uses just implementation
. The exception also seems to come from the build-logic
gradle module.
I'm going ahead and closing this because I don't see an issue in the plugin but we can't continue the conversation here and reopen if needed.
Thanks!
ga...@linecorp.com <ga...@linecorp.com> #3
In my case, I added several changes like this
And I can perform :app:generateProductionReleaseBaselineProfile
successfully.
applying the com.android.test plugin to the baselineprofile module causes an exception for missing testImplementation configuration.
This was already guarded by
That logic is disabling variants for with build types that are not release (and flavor not develop). Removing that logic should fix the issue.
I confirmed that :app:tasks
can performed successfully with commenting out this block.
But filtering variants
feature is introduced at
ga...@linecorp.com <ga...@linecorp.com> #4
applying the com.android.test plugin to the baselineprofile module causes an exception for missing testImplementation configuration.
This was already guarded by
https://github.com/ganadist/VersionCodeDemo/blob/baselineprofile2/build-logic/convention/src/main/kotlin/AndroidBuilderPlugin.kt#L53-L56 And it does not make error in my case.
Hmm, it is strange.
I found this error occured while gradle project sync only, but it is okay when invoke gradle on command line.
I'm guessing that plugin Id is different when gradle is invoked from commandline and project sync from Android Studio.
Anyway, I'll handle about missing testImplementation
configuration.
ga...@linecorp.com <ga...@linecorp.com> #5
I added this logic to allow build types which are added by baselineprofile
plugin.
As I commented at #3 , variants filtering
would be used widely.
So, build type
from plugin, and mention should be added not to ignore these build type.
Or please raise exception which has these information instead of UnknownTaskException
ma...@google.com <ma...@google.com> #6
But filtering variants feature is introduced at
https://developer.android.com/build/build-variants#filter-variants , and It is expected to be widely used.
Unfortunately, the plugin cannot prevent the user to disable a variant that is used for baseline profile generation. This is because build types are created in finalizeDsl
, while variants can be disabled in beforeVariants
that runs after. There are actually some hacky way to do this but supporting them would require api that are currently deprecated and not meant for public use (that means AGP can break them any time).
Improving the error message is already on my to-do list and will pass the task to the team to update the documentation.
Thank you for trying the baseline profile gradle plugin, if you encounter any other issue please don't hesitate to reach out.
ap...@google.com <ap...@google.com> #7
Branch: androidx-main
commit 0a3e9f8ceef5cb0ceffc8385346f45e86985f0aa
Author: Marcello Albano <maralb@google.com>
Date: Thu Oct 26 10:32:53 2023
Improved error msg when benchmark variants are disabled
Bug: 307478189
Test: ./gradlew :benchmark:benchmark-baseline-profile-gradle-plugin:test
Change-Id: I8536bc3c14bbf2d1ee165b3d3f55a3dec9ff61d7
M benchmark/baseline-profile-gradle-plugin/src/main/kotlin/androidx/baselineprofile/gradle/consumer/BaselineProfileConsumerPlugin.kt
M benchmark/baseline-profile-gradle-plugin/src/test/kotlin/androidx/baselineprofile/gradle/consumer/BaselineProfileConsumerPluginTest.kt
pr...@google.com <pr...@google.com> #8
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.benchmark:benchmark-baseline-profile-gradle-plugin:1.3.0-alpha01
Description
Continuing report from b/307473787
I tried to followhttps://developer.android.com/topic/performance/baselineprofiles/create-baselineprofile#create-new-profile
And applied
androidx.baselineprofile
gradle plugin on my project.But when I tried to perform gradle, and gradle failed like this.
Component used:
Devices/Android versions reproduced on: N/A
If this is a bug in the library, we would appreciate if you could attach: