Commit 41ff163
Stable Updates 20250728 (#1234)
Fixes: #1233
This PR implements the stable updates for Android libraries as of July
28, 2025, updating Maven artifact versions to their latest available
releases and fixing compilation errors in Firebase packages.
## Configuration Updates
Updated 41 Maven artifacts to their latest stable versions (reverted
com.google.dagger from 2.57.0 to 2.56.2 due to dependency resolution
issues):
- **Google Play Services**: ads (24.4.0→24.5.0), auth (21.3.0→21.4.0), measurement (22.5.0→23.0.0)
- **Google Ads**: Interactive Media updated from 3.36.0 to 3.37.0 (now prerelease 3.37.0.1-beta01)
- **Firebase**: Multiple libraries updated to latest stable versions
- **Third-party dependencies**: ~~Dagger (2.56.2→2.57.0)~~ reverted, GRPC (1.73.0→1.74.0), Error Prone annotations updated
## Firebase Compilation Fixes
### Problem
The updated Firebase packages introduced compilation errors:
error CS0738: 'FirebaseSessionsComponent_MainModule_Companion_SessionDataStoreFactory' does not implement interface member 'IProvider.Get()'. 'FirebaseSessionsComponent_MainModule_Companion_SessionDataStoreFactory.Get()' cannot implement 'IProvider.Get()' because it does not have the matching return type of 'Object'.
error CS0111: Type 'DoubleCheck' already defines a member called 'Lazy' with the same parameter types
error CS0111: Type 'DoubleCheck' already defines a member called 'Provider' with the same parameter types
### Resolution
Fixed Firebase compilation errors in `firebase-sessions` and
`firebase-functions` packages:
1. **Interface Implementation Fix**: Created an Additions file for
`FirebaseSessionsComponent_MainModule_Companion_SessionDataStoreFactory`
that properly implements `IProvider.Get()` with the correct return
type of `Java.Lang.Object`.
2. **Duplicate Method Removal**: Added remove-node entries in
Metadata.xml for both packages to eliminate duplicate `Lazy` and
`Provider` methods in the `DoubleCheck` class that were causing
CS0111 compilation errors.
## NuGet Packaging Fix
### Problem
Interactive Media package had NU5104 errors due to stable package
depending on prerelease PrivacySandbox dependencies:
error NU5104: A stable release of a package should not have a prerelease dependency. Either modify the version spec of dependency "Xamarin.AndroidX.PrivacySandbox.Ads.AdsServices.Java [1.1.0.2-beta12, )" or update the version field in the nuspec.
### Resolution
Updated Interactive Media package to prerelease version
3.37.0.1-beta01 to allow proper dependency on PrivacySandbox beta
packages without violating NuGet's stable-to-prerelease dependency
rules.
## Unit Test Fix
### Problem
Unit tests were failing with 7zip location errors on Linux builds:
System.Exception : Could not find 7zip.exe in Xamarin installation
### Resolution
Enhanced VS7ZipLocator to detect system-installed 7z on Linux
platforms by checking `/usr/bin/7z` before falling back to
Windows-specific paths. This fixes unit test failures related to
archive extraction functionality and ensures proper cross-platform
compatibility.
## Dependency Resolution Error Investigation
### Problem
When HTTP 404 errors occur during the binderate process, the error
messages do not provide enough context about which specific Maven
dependency failed to resolve:
Dependency errors : 1
1
System.Net.Http.HttpRequestException: Response status code does not indicate success: 404 (Not Found).
at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at System.Net.Http.HttpClient.GetStreamAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
Updated the code to better log errors.
### Investigation Results
Through code analysis, identified that the error occurs during
AggregateException handling in `BinderateCommand.cs`, not in the
`ProjectResolver.Resolve` method as initially assumed. The most
effective locations for adding detailed dependency logging are:
1. **BindingProjectConverter.cs line 31** - Where individual artifacts
are processed via `MavenFactory2.GetPomForArtifact()`
2. **BinderateCommand.cs lines 55-72** - In the AggregateException
handler where errors are formatted
3. **MavenFactory2.cs line 34** - In the `GetPomForArtifact` method
where dependency resolution occurs
### Dagger Reversion
Reverted com.google.dagger from version 2.57.0 back to the stable
2.56.2 due to dependency resolution failures during the binderate
process. The dependency resolution error was specifically:
com.google.dagger.dagger:2.57.0
Failed to resolve dependency: com.google.dagger:dagger:2.57.0
Artifact details - GroupId: com.google.dagger, ArtifactId: dagger, Version: 2.57.0
Full artifact string: com.google.dagger:dagger:2.57.0
This investigation provides the foundation for implementing proper
dependency error logging that will identify which specific Maven
artifacts fail to resolve, making debugging much more effective.
## Updated Package Information
The following files have been regenerated with the latest configuration:
- Component governance manifest (cgmanifest.json)
- Published namespaces list (published-namespaces.txt)
- Artifact list with versions (docs/artifact-list-with-versions.md)
Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>
Co-authored-by: sheiksyedm <23059975+sheiksyedm@users.noreply.github.com>1 parent b025bde commit 41ff163
39 files changed
Lines changed: 499 additions & 574 deletions
File tree
- .github
- docs
- source
- com.android.billingclient/billing/PublicAPI
- com.google.ads.interactivemedia.v3/interactivemedia/PublicAPI
- com.google.android.gms
- play-services-ads-api/PublicAPI
- play-services-ads/PublicAPI
- play-services-auth-base/PublicAPI
- play-services-auth/PublicAPI
- play-services-measurement-api/PublicAPI
- play-services-measurement-sdk/PublicAPI
- com.google.firebase
- firebase-abt/PublicAPI
- firebase-appcheck-playintegrity/PublicAPI
- firebase-appcheck/PublicAPI
- firebase-auth/PublicAPI
- firebase-config/PublicAPI
- firebase-crashlytics-ndk/PublicAPI
- firebase-crashlytics/PublicAPI
- firebase-database/PublicAPI
- firebase-datatransport/PublicAPI
- firebase-firestore/PublicAPI
- firebase-functions
- PublicAPI
- Transforms
- firebase-inappmessaging-display/PublicAPI
- firebase-inappmessaging/PublicAPI
- firebase-installations/PublicAPI
- firebase-messaging/PublicAPI
- firebase-perf/PublicAPI
- firebase-sessions
- Additions
- PublicAPI
- Transforms
- firebase-storage/PublicAPI
- io.grpc
- grpc-core/PublicAPI
- grpc-stub/PublicAPI
- grpc-util/PublicAPI
- util
- Xamarin.AndroidBinderator/Xamarin.AndroidBinderator.Tool/Commands
- Xamarin.Build.Download/source/Xamarin.Build.Download
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
0 commit comments