Flutter: Java uses or overrides a deprecated API - Printable Version +- 0Day Forums (https://zeroday.vip) +-- Forum: Coding (https://zeroday.vip/Forum-Coding) +--- Forum: Flutter & Dart (https://zeroday.vip/Forum-Flutter-Dart) +--- Thread: Flutter: Java uses or overrides a deprecated API (/Thread-Flutter-Java-uses-or-overrides-a-deprecated-API) |
Flutter: Java uses or overrides a deprecated API - mealwormsws - 07-21-2023 I've been trying to use the auth, firestore firebase in an Android / IOS flutter application, and have been experiencing many different issues, after testing several different versions. Now it's showing me several messages in the build log. build log > Note: > D:\Flutter\SDK\flutter\.pub-cache\hosted\pub.dartlang.org\firebase_core-0.4.3+1\android\src\main\java\io\flutter\plugins\firebase\core\FirebaseCorePlugin.java > uses or overrides a deprecated API. Note: Recompile with > -Xlint:deprecation for details. Note: D:\Flutter\SDK\flutter\.pub-cache\hosted\pub.dartlang.org\cloud_firestore-0.13.0+1\android\src\main\java\io\flutter\plugins\firebase\cloudfirestore\CloudFirestorePlugin.java > uses unchecked or unsafe operations. Note: Recompile with > -Xlint:unchecked for details. D8: Cannot fit requested classes in a single dex file (# methods: 81454 > 65536) > com.android.builder.dexing.DexArchiveMergerException: Error while > merging dex archives: The number of method references in a .dex file > cannot exceed 64K. Learn how to resolve this issue at > [To see links please register here] > at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:131)> at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:118) > at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:102) > at com.android.build.gradle.internal.tasks.DexMergingTaskRunnable.run(DexMergingTask.kt:444) > at com.android.build.gradle.internal.tasks.Workers$ActionFacade.run(Workers.kt:335) > at org.gradle.workers.internal.AdapterWorkAction.execute(AdapterWorkAction.java:50) > at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:47) > at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:65) > > at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:61) > > at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:98) > at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.execute(NoIsolationWorkerFactory.java:61) > at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44) > at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41) > at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416) > at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406) > at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165) > at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) > at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158) > at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102) > at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36) > at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41) > at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:56) > > at org.gradle.workers.internal.DefaultWorkerExecutor$3.call(DefaultWorkerExecutor.java:215) > at org.gradle.workers.internal.DefaultWorkerExecutor$3.call(DefaultWorkerExecutor.java:210) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215) > at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164) > at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) > > at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) > at java.lang.Thread.run(Thread.java:748) Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to > complete > at com.android.tools.r8.utils.t.a(:55) > at com.android.tools.r8.D8.run(:11) > at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:116) > ... 34 more Caused by: com.android.tools.r8.utils.AbortException: Error: null, Cannot fit > requested classes in a single dex file (# methods: 81454 > 65536) > at com.android.tools.r8.utils.Reporter.a(:21) > at com.android.tools.r8.utils.Reporter.a(:7) > at com.android.tools.r8.dex.VirtualFile.a(:33) > at com.android.tools.r8.dex.VirtualFile$h.a(:5) > at com.android.tools.r8.dex.ApplicationWriter.a(:13) > at com.android.tools.r8.dex.ApplicationWriter.write(:35) > at com.android.tools.r8.D8.d(:44) > at com.android.tools.r8.D8.b(:1) > at com.android.tools.r8.utils.t.a(:23) > ... 36 more > > > FAILURE: Build failed with an exception. > > * What went wrong: Execution failed for task ':app:mergeDexDebug'. > > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > > com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: > The number of method references in a .dex file cannot exceed 64K. > Learn how to resolve this issue at [To see links please register here] >> * 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 [To see links please register here] >> BUILD FAILED in 4m 33s flutter doctor -v > [√] Flutter (Channel stable, v1.12.13+hotfix.5, on Microsoft Windows > [Version 10.0.18362.535], locale en-IN) > - • Flutter version 1.12.13+hotfix.5 at D:\Flutter\SDK\flutter > • Framework revision 27321ebbad (3 weeks ago), 2019-12-10 18:15:01 -0800 > • Engine revision 2994f7e1e6 > • Dart version 2.7.0 > > [√] Android toolchain - develop for Android devices (Android SDK > version 29.0.2) > - • Android SDK at C:\Users\admin\AppData\Local\Android\sdk > • Android NDK location not configured (optional; useful for native profiling support) > • Platform android-29, build-tools 29.0.2 > • Java binary at: D:\Android SDK\jre\bin\java > • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03) > • All Android licenses accepted. > > [√] Android Studio (version 3.5) > - • Android Studio at D:\Android SDK > • Flutter plugin version 41.1.2 > • Dart plugin version 191.8593 > • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03) pubspec dependencies: flutter: sdk: flutter firebase_auth: ^0.15.3 cloud_firestore: ^0.13.0+1 build.gradle(android) dependencies { classpath 'com.android.tools.build:gradle:3.5.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.0' } RE: Flutter: Java uses or overrides a deprecated API - nanosecond144 - 07-21-2023 You need to use the following plugin: ``` dependencies: firebase_auth: ^0.15.3 cloud_firestore: ^0.13.0+1 ``` Don't forget to configure firebase: [To see links please register here] [To see links please register here] Also in your `app/build.gradle`, increase the `minSdkVersion`: Change this: ``` minSdkVersion 16 ``` into this: ``` minSdkVersion 23 ``` RE: Flutter: Java uses or overrides a deprecated API - kith784393 - 07-21-2023 In order to use **minSdkVersion** below 21 you will have to configure your app for multidex like this: android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 28 multiDexEnabled true } ... } dependencies { implementation "androidx.multidex:multidex:2.0.1" } After this please run the flutter pub upgrade flutter pub get flutter clean flutter run It will still throw the warning after **flutter clean**, but at least it will be possible for supporting earlier versions. More to check out on [official docs][1] [1]: [To see links please register here] RE: Flutter: Java uses or overrides a deprecated API - bebeeeh - 07-21-2023 In my case, Open terminal and Run: 1. Run: flutter clean => Clean cache. 2. Run: flutter pub outdated => Findout what libraries need to upgrade. 3. Run: flutter pub upgrade => Upgrade libraries. 4. Run: flutter pub get. 5. Run: flutter run. Good luck! RE: Flutter: Java uses or overrides a deprecated API - participle661945 - 07-21-2023 I also got errors with my project when using Firebase services(core, auth, cloud firestore), but I decided to get into this problem only when building an appbundle: [![screen with error in the console][1]][1] fixed it with part of the chosen answer, by increasing **minSdkVersion** in *android/app/build.gradle* from: defaultConfig { ... minSdkVersion 21 ... } to: defaultConfig { ... minSdkVersion 23 ... } Аnd then the error that I get of project building disappears: [![enter image description here][2]][2] [1]: [2]: |