Flutter构建APK:在guava-26.0-android.jar和listenablefuture-1.0.jar模块中发现重复的类。

3

我在使用Flutter构建APK时遇到了一个奇怪的错误:

% flutter build apk --no-shrink
You are building a fat APK that includes binaries for android-arm, android-arm64, android-x64.
If you are deploying the app to the Play Store, it's recommended to use app bundles or split the APK to reduce the APK size.
    To generate an app bundle, run:
        flutter build appbundle --target-platform android-arm,android-arm64,android-x64
        Learn more on: https://developer.android.com/guide/app-bundle
    To split the APKs per ABI, run:
        flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi
        Learn more on:  https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split
                                                                        
FAILURE: Build failed with an exception.                                
                                                                        
* What went wrong:                                                      
Execution failed for task ':app:checkReleaseDuplicateClasses'.          
> 1 exception was raised by workers:                                    
  java.lang.RuntimeException: Duplicate class com.google.common.util.concurrent.ListenableFuture found in modules guava-26.0-android.jar (com.google.guava:guava:26.0-android) and listenablefuture-1.0.jar (com.google.guava:listenablefuture:1.0)
                                                                        
  Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.
                                                                        
                                                                        
* Try:                                                                  
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
                                                                        
* Get more help at https://help.gradle.org                              
                                                                        
BUILD FAILED in 29s                                                     
Running Gradle task 'assembleRelease'...                                
Running Gradle task 'assembleRelease'... Done                      30.3s
Gradle task assembleRelease failed with exit code 1
joao@Mini-de-Joao opengames % flutter build apk --no-shrink
You are building a fat APK that includes binaries for android-arm, android-arm64, android-x64.
If you are deploying the app to the Play Store, it's recommended to use app bundles or split the APK to reduce the APK size.
    To generate an app bundle, run:
        flutter build appbundle --target-platform android-arm,android-arm64,android-x64
        Learn more on: https://developer.android.com/guide/app-bundle
    To split the APKs per ABI, run:
        flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi
        Learn more on:  https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split
                                                                        
FAILURE: Build failed with an exception.                                
                                                                        
* What went wrong:                                                      
Execution failed for task ':app:checkReleaseDuplicateClasses'.          
> 1 exception was raised by workers:                                    
  java.lang.RuntimeException: Duplicate class com.google.common.util.concurrent.ListenableFuture found in modules guava-26.0-android.jar (com.google.guava:guava:26.0-android) and listenablefuture-1.0.jar (com.google.guava:listenablefuture:1.0)
                      

有什么想法吗?

1个回答

7

本解决方案来源于这篇Stack Overflow帖子

2020年解决方案

谷歌已经意识到了这个错误,因此他们制作了一个特殊的软件包来解决冲突。

将以下内容添加到您的build.gradle文件中:

implementation 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'


现在这个解决方案不起作用了。当我们将其添加到Flutter app/build.gradle文件中时,运行应用程序时会显示此错误。
  • 出了什么问题: 评估项目“:app”时出现问题。
    在类型为org.gradle.api.Project的项目“:app”上找不到方法implementation()的参数[com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava]。
- Reynosh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接