You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AGP 4+ contains new APIs for accessing build variants (and the APKs produced for each of them), and the existing APIs have been deprecated.
The main differences appear to be:
com.android.build.gradle.api.TestVariant has been replaced by com.android.build.api.variant.AndroidTest.
Instead of using com.android.build.gradle.AppExtension and com.android.build.gradle.TestedExtension to access build variants, one needs to use com.android.build.api.variant.ApplicationAndroidComponentsExtension to access com.android.build.api.variant.ApplicationVariant, which has a androidTest: AndroidTest? property for the corresponding instrumentation test variant. (And com.android.build.api.variant.LibraryAndroidComponentsExtension to access com.android.build.api.variant.LibraryVariant.)
ApplicationVariant, LibraryVariant, and AndroidTest expose their outputs as com.android.build.api.variant.VariantOutputs, but there's no longer a way to get the path to each APK output via that API. Instead, one has to use the com.android.build.api.artifact.Artifacts API to access a DirectoryProperty for the folder the APKs are placed in, and use BuiltArtifactsLoader to access the outputs within a task action.
👋🏾 @runningcode Curious if there is an ETA on this migration? If you are super swamped @jschear and I might look into making this one happen. Let us know whenever you get a chance 😃
Hey, sorry there's no ETA on this. Sorry I haven't got a chance to look at it. October is a busy month for me but perhaps later I will be able to take a look at it. Feel free to contribute or pick up the PR.
Sounds good -- thanks for the update. We've been looking at making some other changes (in short: our app uses ABI splits, which fladle/fulladle doesn't handle right now), and were having trouble deciding between implementing them using the old AGP APIs, or upgrading to the new APIs first.
AGP 4+ contains new APIs for accessing build variants (and the APKs produced for each of them), and the existing APIs have been deprecated.
The main differences appear to be:
com.android.build.gradle.api.TestVariant
has been replaced bycom.android.build.api.variant.AndroidTest
.com.android.build.gradle.AppExtension
andcom.android.build.gradle.TestedExtension
to access build variants, one needs to usecom.android.build.api.variant.ApplicationAndroidComponentsExtension
to accesscom.android.build.api.variant.ApplicationVariant
, which has aandroidTest: AndroidTest?
property for the corresponding instrumentation test variant. (Andcom.android.build.api.variant.LibraryAndroidComponentsExtension
to accesscom.android.build.api.variant.LibraryVariant
.)ApplicationVariant
,LibraryVariant
, andAndroidTest
expose their outputs ascom.android.build.api.variant.VariantOutputs
, but there's no longer a way to get the path to each APK output via that API. Instead, one has to use thecom.android.build.api.artifact.Artifacts
API to access aDirectoryProperty
for the folder the APKs are placed in, and useBuiltArtifactsLoader
to access the outputs within a task action.I've taken a stab at the update here, but the
BuiltArtifactsLoader
change is a bit tricky: master...jschear:js/agp_7The text was updated successfully, but these errors were encountered: