Skip to content

Conversation

@moljac
Copy link
Contributor

@moljac moljac commented Sep 23, 2021

Describe your contribution

Moving Guava dependencies from XamarinComponents to AndroidX repo as templete set.

  1. added new bindings required as dependencies of other template sets (guava)
  • com.google.guava:guava - 29.0.0 -> 29.0-android
  • com.google.guava:listenablefuture - 1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
  • com.google.guava:failureaccess - -> 1.0.1
  1. created template sets

Updated/new (moved) artifacts

  • `com.google.code.findbugs:jsr305 - -> 3.0.2
  • org.checkerframework:checkercompatqual - -> 2.5.5
  • com.google.errorprone:error_prone_annotations - -> 2.3.4
  • com.google.j2objc:j2objcannotations - -> 1.3

Does this change any of the generated binding API's?

net6-android TFM added

Artifacts updated

  • com.google.guava:guava - 29.0.0 -> 29.0-android
  • com.google.guava:listenablefuture - 1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
  • com.google.guava:failureaccess - -> 1.0.1
  • com.google.code.findbugs:jsr305 - -> 3.0.2
  • org.checkerframework:checkercompatqual - -> 2.5.5
  • com.google.errorprone:error_prone_annotations - -> 2.3.4
  • com.google.j2objc:j2objcannotations - -> 1.3

changed

Xamarin.Google.J2Objc.J2ObjcAnnotations
com.google.j2objc.j2objc-annotations
Xamarin.AndroidX.Media2.Common
androidx.media2.media2-common
Xamarin.AndroidX.Window.WindowJava
androidx.window.window-java
Xamarin.KotlinX.Coroutines.Guava
org.jetbrains.kotlinx.kotlinx-coroutines-guava
Xamarin.AndroidX.Security.SecurityCrypto
androidx.security.security-crypto
Xamarin.AndroidX.Lifecycle.Common
androidx.lifecycle.lifecycle-common
Xamarin.AndroidX.Media2.Session
androidx.media2.media2-session
Xamarin.AndroidX.Lifecycle.Process
androidx.lifecycle.lifecycle-process
Xamarin.AndroidX.Lifecycle.ViewModelSavedState
androidx.lifecycle.lifecycle-viewmodel-savedstate
Xamarin.AndroidX.Lifecycle.ViewModel.Ktx
androidx.lifecycle.lifecycle-viewmodel-ktx
Xamarin.AndroidX.Work.Runtime
androidx.work.work-runtime
Xamarin.AndroidX.Room.Guava
androidx.room.room-guava
Xamarin.Google.Code.FindBugs
com.google.code.findbugs.jsr305
Xamarin.Google.ErrorProne.ErrorProneAnnotations
com.google.errorprone.error_prone_annotations
Xamarin.AndroidX.Camera.Lifecycle
androidx.camera.camera-lifecycle
Xamarin.AndroidX.Camera.Camera2
androidx.camera.camera-camera2
Xamarin.AndroidX.Window
androidx.window.window
Xamarin.AndroidX.Concurrent.Futures
androidx.concurrent.concurrent-futures
Xamarin.AndroidX.Lifecycle.ViewModel
androidx.lifecycle.lifecycle-viewmodel
Xamarin.CheckerFramework.CheckerCompatQual
org.checkerframework.checker-compat-qual
Xamarin.AndroidX.MediaRouter
androidx.mediarouter.mediarouter
Xamarin.AndroidX.Ads.Identifier
androidx.ads.ads-identifier
Xamarin.AndroidX.Lifecycle.Runtime.Ktx
androidx.lifecycle.lifecycle-runtime-ktx
Xamarin.AndroidX.Wear.RemoteInteractions
androidx.wear.wear-remote-interactions
Xamarin.AndroidX.Activity
androidx.activity.activity
GoogleGson
com.google.code.gson.gson
Xamarin.Google.Guava.ListenableFuture
com.google.guava.listenablefuture
Xamarin.AndroidX.Core
androidx.core.core
Xamarin.AndroidX.Camera.Core
androidx.camera.camera-core
Xamarin.AndroidX.Work.Work.Runtime.Ktx
androidx.work.work-runtime-ktx
Xamarin.Google.Crypto.Tink.Android
com.google.crypto.tink.tink-android
Xamarin.AndroidX.Browser
androidx.browser.browser

Checklist

  • Add any metadata needed to get PR to compile
  • Verify any new namespaces are properly renamed (utilities.cake)
  • Verify nuget/namespace spelling (utilities.cake)

@moljac moljac marked this pull request as draft September 23, 2021 08:26
@moljac
Copy link
Contributor Author

moljac commented Sep 23, 2021

Guava has non-standard naming

EDIT: it is not naming, but version. It is stable, but for SemVer it is preview.

https://mvnrepository.com/artifact/com.google.guava/guava

https://repo1.maven.org/maven2/com/google/guava/guava/30.0-android/

https://repo1.maven.org/maven2/com/google/guava/guava/

@moljac
Copy link
Contributor Author

moljac commented Sep 23, 2021

Problem to solve:

      {
        "templateSet": "guava",
        "groupId": "com.google.guava",
        "artifactId": "listenablefuture",
        "version": "1.0",
        "nugetVersion": "1.0.0.2",
        "nugetId": "Xamarin.Google.Guava.ListenableFuture",
        "dependencyOnly": false
      },
      {
        "templateSet": "guava",
        "groupId": "com.google.guava",
        "artifactId": "listenablefuture",
        "version": "9999.0-empty-to-avoid-conflict-with-guava",
        "nugetVersion": "CHECK NUGET ID",
        "nugetId": "9999.0-empty-to-avoid-conflict-with-guava",
        "dependencyOnly": false
      },

@moljac
Copy link
Contributor Author

moljac commented Sep 23, 2021

Following data:

      {
        "templateSet": "guava",
        "groupId": "com.google.guava",
        "artifactId": "guava",
        "version": "29.0-android",
        "nugetVersion": "29.0.0",
        "nugetId": "Xamarin.Google.Guava",
        "dependencyOnly": false
      },

causes Maven.Net error

Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'input')
   at System.Text.RegularExpressions.ThrowHelper.ThrowArgumentNullException(ExceptionArgument arg)
   at System.Text.RegularExpressions.Regex.Replace(String input, String replacement)
   at MavenNet.MavenVersionRange.Satisfies(String version)
   at MavenNet.Models.Dependency.Satisfies(String version)
   at AndroidBinderator.Engine.<>c__DisplayClass7_0.<BuildProjectModels>b__0(MavenArtifactConfig ma) in D:\a\1\s\Util\Xamarin.AndroidBinderator\Xamarin.AndroidBinderator\Engine.cs:line 330
   at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found)
   at AndroidBinderator.Engine.BuildProjectModels(BindingConfig config, Dictionary`2 mavenProjects) in D:\a\1\s\Util\Xamarin.AndroidBinderator\Xamarin.AndroidBinderator\Engine.cs:line 327
   at AndroidBinderator.Engine.ProcessConfig(BindingConfig config) in D:\a\1\s\Util\Xamarin.AndroidBinderator\Xamarin.AndroidBinderator\Engine.cs:line 75
   at AndroidBinderator.Engine.BinderateAsync(BindingConfig config) in D:\a\1\s\Util\Xamarin.AndroidBinderator\Xamarin.AndroidBinderator\Engine.cs:line 46
   at Xamarin.AndroidBinderator.Tool.Program.Main(String[] args) in D:\a\1\s\Util\Xamarin.AndroidBinderator\Xamarin.AndroidBinderator.Tool\Program.cs:line 67
   at Xamarin.AndroidBinderator.Tool.Program.<Main>(String[] args)

while "dependencyOnly": true is OK.

@moljac
Copy link
Contributor Author

moljac commented Sep 27, 2021

/azp run

@azure-pipelines
Copy link

Pull request contains merge conflicts.

@moljac
Copy link
Contributor Author

moljac commented Dec 16, 2021

Guava (com.google.guava:guava)

depends on com.google.guava:listenablefuture

There are 2 versions of com.google.guava:listenablefuture

Working solution 1 - template set

This works

      {
        "groupId": "com.google.guava",
        "artifactId": "guava",
        "version": "29.0-android",
        "nugetVersion": "29.0.0",
        "nugetId": "Xamarin.Google.Guava",
        "dependencyOnly": true
      },
      {
        "groupId": "com.google.guava",
        "artifactId": "listenablefuture",
        "version": "9999.0-empty-to-avoid-conflict-with-guava",
        "nugetVersion": "9999.0.0.0-empty-to-avoid-conflict-with-guava",
        "nugetId": "Xamarin.Google.Guava.ListenableFuture",
        "dependencyOnly": false,
        "templateSet": "guava"
      },

but a lot of removed methods in api-diff due to empty artifact without ListenableFuture interface

# API diff: Xamarin.Google.Guava.ListenableFuture.dll

## Xamarin.Google.Guava.ListenableFuture.dll

### Removed Namespace Google.Common.Util.Concurrent


#### Removed Type Google.Common.Util.Concurrent.IListenableFuture

Working solution 2 - dependencies

This works too for binderator and build step (old config when guava was in XC repo):

      {
        "groupId": "com.google.guava",
        "artifactId": "guava",
        "version": "29.0-android",
        "nugetVersion": "29.0.0",
        "nugetId": "Xamarin.Google.Guava",
        "dependencyOnly": true
      },
      {
        "groupId": "com.google.guava",
        "artifactId": "listenablefuture",
        "version": "1.0",
        "nugetVersion": "1.0.0.4",
        "nugetId": "Xamarin.Google.Guava.ListenableFuture",
        "dependencyOnly": true
      },

but fails with samples:

       "/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll.sln" (Build target) (1:2) ->
       "/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj" (default target) (2:6) ->
       (_LinkAssembliesShrink target) -> 
         /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000: Mono.Linker.MarkException: Error processing method: 'Java.Lang.Object Xamarin.KotlinX.Coroutines.Guava.ListenableFutureKt::Await(Google.Common.Util.Concurrent.IListenableFuture,Kotlin.Coroutines.IContinuation)' in assembly: 'Xamarin.KotlinX.Coroutines.Guava.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve Google.Common.Util.Concurrent.IListenableFuture [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Mono.Linker.Steps.MarkStep.HandleUnresolvedType (Mono.Cecil.TypeReference reference) [0x00013] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Mono.Linker.Steps.MarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x0002c] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at MonoDroid.Tuner.MonoDroidMarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x00000] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Mono.Linker.Steps.MarkStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x000c8] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x0001b] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    --- End of inner exception stack trace --- [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x00047] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue () [0x0000a] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Mono.Linker.Steps.MarkStep.Process () [0x000f6] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Mono.Linker.Steps.MarkStep.Process (Mono.Linker.LinkContext context) [0x0000d] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at MonoDroid.Tuner.MonoDroidMarkStep.Process (Mono.Linker.LinkContext context) [0x0000b] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Mono.Linker.Pipeline.ProcessStep (Mono.Linker.LinkContext context, Mono.Linker.Steps.IStep step) [0x0000d] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x0000f] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at MonoDroid.Tuner.Linker.Run (Mono.Linker.Pipeline pipeline, Mono.Linker.LinkContext context) [0x00000] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at MonoDroid.Tuner.Linker.Process (MonoDroid.Tuner.LinkerOptions options, Mono.Linker.ILogger logger, Mono.Linker.LinkContext& context) [0x00071] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Xamarin.Android.Tasks.LinkAssemblies.Execute (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver res) [0x0018f] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Xamarin.Android.Tasks.LinkAssemblies.RunTask () [0x0001b] in <c0d6cc3215244cbb973b42fae60a8de9>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]
       /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Legacy.targets(649,5): error XALNK7000:   at Microsoft.Android.Build.Tasks.AndroidTask.Execute () [0x00000] in <f24af698a51a478ab00657efe7dfcbde>:0  [/Users/Shared/Projects/d/X/AX/template-sets-guava/samples/BuildAll/BuildAll/BuildAll.csproj]

@moljac
Copy link
Contributor Author

moljac commented Dec 17, 2021

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@moljac
Copy link
Contributor Author

moljac commented Jan 3, 2022

Analysis after commit

0fa4dc8

Tricks for guava artifacts to be compiled and properly included as project (nuget references)

ProjectReferences:

generated/androidx.work.work-runtime/androidx.work.work-runtime.csproj:117:        
<ProjectReference Include="..\..\generated\com.google.guava.listenablefuture\com.google.guava.listenablefuture.csproj" PrivateAssets="none" />

generated/androidx.camera.camera-lifecycle/androidx.camera.camera-lifecycle.csproj:116:        
<ProjectReference Include="..\..\generated\com.google.guava.listenablefuture\com.google.guava.listenablefuture.csproj" PrivateAssets="none" />

generated/androidx.camera.camera-core/androidx.camera.camera-core.csproj:118:        
<ProjectReference Include="..\..\generated\com.google.guava.listenablefuture\com.google.guava.listenablefuture.csproj" PrivateAssets="none" />

generated/androidx.media2.media2-common/androidx.media2.media2-common.csproj:119:        
<ProjectReference Include="..\..\generated\com.google.guava.listenablefuture\com.google.guava.listenablefuture.csproj" PrivateAssets="none" />

generated/androidx.mediarouter.mediarouter/androidx.mediarouter.mediarouter.csproj:117:        
<ProjectReference Include="..\..\generated\com.google.guava.listenablefuture\com.google.guava.listenablefuture.csproj" PrivateAssets="none" />

generated/androidx.browser.browser/androidx.browser.browser.csproj:117:        
<ProjectReference Include="..\..\generated\com.google.guava.listenablefuture\com.google.guava.listenablefuture.csproj" PrivateAssets="none" />

generated/androidx.media2.media2-session/androidx.media2.media2-session.csproj:116:        
<ProjectReference Include="..\..\generated\com.google.guava.listenablefuture\com.google.guava.listenablefuture.csproj" PrivateAssets="none" />

generated/androidx.ads.ads-identifier/androidx.ads.ads-identifier.csproj:116:        
<ProjectReference Include="..\..\generated\com.google.guava.listenablefuture\com.google.guava.listenablefuture.csproj" PrivateAssets="none" />

generated/androidx.concurrent.concurrent-futures/androidx.concurrent.concurrent-futures.csproj:111:        
<ProjectReference Include="..\..\generated\com.google.guava.listenablefuture\com.google.guava.listenablefuture.csproj" PrivateAssets="none" />

generated/androidx.camera.camera-camera2/androidx.camera.camera-camera2.csproj:121:        
<ProjectReference Include="..\..\generated\com.google.guava.listenablefuture\com.google.guava.listenablefuture.csproj" PrivateAssets="none" />

generated/androidx.wear.wear-remote-interactions/androidx.wear.wear-remote-interactions.csproj:117:        
<ProjectReference Include="..\..\generated\com.google.guava.listenablefuture\com.google.guava.listenablefuture.csproj" PrivateAssets="none" />

generated/androidx.wear.wear-remote-interactions/androidx.wear.wear-remote-interactions.csproj:118:        
<ProjectReference Include="..\..\generated\org.jetbrains.kotlinx.kotlinx-coroutines-guava\org.jetbrains.kotlinx.kotlinx-coroutines-guava.csproj" PrivateAssets="none" />
find ./externals -type f -name "*pom*" -exec grep -Hni "<groupId>com.google.guava<" {} \;
./externals/androidx.room/room-guava.pom:48:          <groupId>com.google.guava</groupId>
./externals/io.reactivex.rxjava2/rxjava.pom:66:      <groupId>com.google.guava</groupId>
./externals/androidx.mediarouter/mediarouter.pom:42:      <groupId>com.google.guava</groupId>
./externals/androidx.camera/camera-camera2.pom:68:      <groupId>com.google.guava</groupId>
./externals/androidx.camera/camera-lifecycle.pom:41:      <groupId>com.google.guava</groupId>
./externals/androidx.camera/camera-core.pom:55:      <groupId>com.google.guava</groupId>
./externals/org.jetbrains.kotlinx/kotlinx-coroutines-guava.pom:35:      <groupId>com.google.guava</groupId>
./externals/androidx.concurrent/concurrent-futures.pom:40:      <groupId>com.google.guava</groupId>
./externals/androidx.browser/browser.pom:48:      <groupId>com.google.guava</groupId>
./externals/androidx.ads/ads-identifier.pom:36:      <groupId>com.google.guava</groupId>
./externals/androidx.work/work-runtime.pom:42:      <groupId>com.google.guava</groupId>
./externals/androidx.media2/media2-session.pom:42:      <groupId>com.google.guava</groupId>
./externals/androidx.media2/media2-common.pom:56:      <groupId>com.google.guava</groupId>
./externals/androidx.wear/wear-remote-interactions.pom:47:      <groupId>com.google.guava</groupId>
./externals/com.google.guava/listenablefuture.pom:6:    <groupId>com.google.guava</groupId>
./externals/com.google.guava/guava.pom:6:    <groupId>com.google.guava</groupId>
./externals/com.google.guava/guava.pom:20:      <groupId>com.google.guava</groupId>
./externals/com.google.guava/guava.pom:25:      <groupId>com.google.guava</groupId>
./externals/com.google.guava/failureaccess.pom:6:    <groupId>com.google.guava</groupId>

cleaned up:

./externals/androidx.room/room-guava.pom:48:          <groupId>com.google.guava</groupId>
./externals/androidx.mediarouter/mediarouter.pom:42:      <groupId>com.google.guava</groupId>
./externals/androidx.camera/camera-camera2.pom:68:      <groupId>com.google.guava</groupId>
./externals/androidx.camera/camera-lifecycle.pom:41:      <groupId>com.google.guava</groupId>
./externals/androidx.camera/camera-core.pom:55:      <groupId>com.google.guava</groupId>
./externals/androidx.concurrent/concurrent-futures.pom:40:      <groupId>com.google.guava</groupId>
./externals/androidx.browser/browser.pom:48:      <groupId>com.google.guava</groupId>
./externals/androidx.ads/ads-identifier.pom:36:      <groupId>com.google.guava</groupId>
./externals/androidx.work/work-runtime.pom:42:      <groupId>com.google.guava</groupId>
./externals/androidx.media2/media2-session.pom:42:      <groupId>com.google.guava</groupId>
./externals/androidx.media2/media2-common.pom:56:      <groupId>com.google.guava</groupId>
./externals/androidx.wear/wear-remote-interactions.pom:47:      <groupId>com.google.guava</groupId>
find ./externals/androidx* -type f -name "*pom*" -exec grep -Hni "<groupId>com.google.guava<" {} \;
./externals/androidx.ads/ads-identifier.pom:36:      <groupId>com.google.guava</groupId>
./externals/androidx.browser/browser.pom:48:      <groupId>com.google.guava</groupId>
./externals/androidx.camera/camera-camera2.pom:68:      <groupId>com.google.guava</groupId>
./externals/androidx.camera/camera-lifecycle.pom:41:      <groupId>com.google.guava</groupId>
./externals/androidx.camera/camera-core.pom:55:      <groupId>com.google.guava</groupId>
./externals/androidx.concurrent/concurrent-futures.pom:40:      <groupId>com.google.guava</groupId>
./externals/androidx.media2/media2-session.pom:42:      <groupId>com.google.guava</groupId>
./externals/androidx.media2/media2-common.pom:56:      <groupId>com.google.guava</groupId>
./externals/androidx.mediarouter/mediarouter.pom:42:      <groupId>com.google.guava</groupId>
./externals/androidx.room/room-guava.pom:48:          <groupId>com.google.guava</groupId>
./externals/androidx.wear/wear-remote-interactions.pom:47:      <groupId>com.google.guava</groupId>
./externals/androidx.work/work-runtime.pom:42:      <groupId>com.google.guava</groupId>

@moljac
Copy link
Contributor Author

moljac commented Jan 30, 2022

New updates in AndroidX need guava JRE!!!

#468 (comment)

@jpobst
Copy link
Contributor

jpobst commented May 24, 2022

Parts of this were used and committed with #531.

@jpobst jpobst closed this May 24, 2022
@jpobst jpobst deleted the template-sets-guava branch May 24, 2022 20:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants