diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index e7fe52c..59b00db 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -194,6 +194,10 @@
   // Currently Gson is still shipping without consumer keep rules.
   public static final Path GSON_KEEP_RULES =
       Paths.get(ToolHelper.THIRD_PARTY_DIR, "gson", "gson-2.10.1", "gson.pro");
+  public static final Path GUAVA_JRE =
+      Paths.get(THIRD_PARTY_DIR, "guava", "guava-32.1.2-jre", "guava-32.1.2-jre.jar");
+  public static final Path GUAVA_ANDROID =
+      Paths.get(THIRD_PARTY_DIR, "guava", "guava-32.1.2-android", "guava-32.1.2-android.jar");
   public static final String PROGUARD_SETTINGS_FOR_INTERNAL_APPS =
       THIRD_PARTY_DIR + "proguardsettings/";
 
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/GuavaMultiSetSpliteratorTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/GuavaMultiSetSpliteratorTest.java
index a8fd859..8caa44c 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/GuavaMultiSetSpliteratorTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/GuavaMultiSetSpliteratorTest.java
@@ -9,10 +9,10 @@
 import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
 
 import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification;
 import com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification;
 import com.android.tools.r8.utils.AndroidApiLevel;
-import com.android.tools.r8.utils.DaggerUtils;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMultiset;
 import com.google.common.collect.Multiset;
@@ -63,11 +63,13 @@
       Assume.assumeTrue(parameters.getApiLevel().isGreaterThanOrEqualTo(AndroidApiLevel.L));
     }
     testForDesugaredLibrary(parameters, libraryDesugaringSpecification, compilationSpecification)
-        // TODO(b/289363570): Guava should not rely on dagger.
-        .addProgramFiles(DaggerUtils.getGuavaFromDagger())
+        .addProgramFiles(ToolHelper.GUAVA_JRE)
         .addInnerClasses(getClass())
         .addOptionsModification(opt -> opt.ignoreMissingClasses = true)
-        .allowDiagnosticWarningMessages()
+        // The Guava embedded ProGuard rules include unused rules and unused -dontwarn patterns.
+        .allowDiagnosticMessages()
+        .allowUnusedProguardConfigurationRules()
+        .allowUnusedDontWarnPatterns()
         .addKeepMainRule(Main.class)
         .run(parameters.getRuntime(), Main.class)
         .assertSuccessWithOutputLines("17744", "NullPointerException");
diff --git a/src/test/java/com/android/tools/r8/utils/DaggerUtils.java b/src/test/java/com/android/tools/r8/utils/DaggerUtils.java
index 685c0e7..de4e55f 100644
--- a/src/test/java/com/android/tools/r8/utils/DaggerUtils.java
+++ b/src/test/java/com/android/tools/r8/utils/DaggerUtils.java
@@ -57,10 +57,6 @@
           .map(DAGGER_ROOT::resolve)
           .collect(ImmutableList.toImmutableList());
 
-  public static Path getGuavaFromDagger() {
-    return DAGGER_ROOT.resolve(GUAVA);
-  }
-
   public static List<Path> getDaggerRuntime() {
     return DAGGER_RUNTIME;
   }
diff --git a/third_party/guava/guava-32.1.2-android.tar.gz.sha1 b/third_party/guava/guava-32.1.2-android.tar.gz.sha1
new file mode 100644
index 0000000..1185b35
--- /dev/null
+++ b/third_party/guava/guava-32.1.2-android.tar.gz.sha1
@@ -0,0 +1 @@
+043d1f6007f83112e7d9e1f38a704b2277d4328b
\ No newline at end of file
diff --git a/third_party/guava/guava-32.1.2-jre.tar.gz.sha1 b/third_party/guava/guava-32.1.2-jre.tar.gz.sha1
new file mode 100644
index 0000000..8941f74
--- /dev/null
+++ b/third_party/guava/guava-32.1.2-jre.tar.gz.sha1
@@ -0,0 +1 @@
+4089d8efb5de83eecbafb6d093abde46f80700ab
\ No newline at end of file
