运行报错

来源:4-3 Windows电脑搭建Flutter开发环境教程以及常见问题汇总

saw希望

2025-01-07

flutter version 3.27.1

jdk 17

报错 

[ +173 ms] Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf-8

[   +3 ms] Picked up _JAVA_OPTIONS: -Dfile.encoding=utf-8

[ +212 ms] 错误: 找不到或无法加载主类 Dfile.encoding=utf-8

[   +1 ms] 原因: java.lang.ClassNotFoundException: Dfile.encoding=utf-8


具体info 如下

PS F:\project_mix\fluter_v2\navers> flutter run -v

[ +458 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.

[   +2 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.

[        ] Artifact Instance of 'LegacyCanvasKitRemover' is not required, skipping update.

[   +4 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.

[ +108 ms] executing: E:\android_sdk\platform-tools\adb.exe devices -l

[ +344 ms] List of devices attached

                    emulator-5554          device product:MI 9 model:MI_9 device:star2qltechn transport_id:1

[  +13 ms] E:\android_sdk\platform-tools\adb.exe -s emulator-5554 shell getprop

[ +261 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.

[  +16 ms] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.

[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.

[ +296 ms] Skipping pub get: version match.

[ +219 ms] Generating F:\project_mix\fluter_v2\navers\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java

[ +105 ms] ro.hardware = qcom

[ +159 ms] No packages with native assets. Skipping native assets compilation.

[   +5 ms] Initializing file store

[  +17 ms] Skipping target: gen_localizations

[   +7 ms] gen_dart_plugin_registrant: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents: F:\project_mix\fluter_v2\navers\.dart_tool\package_config_subset}

[ +297 ms] gen_dart_plugin_registrant: Complete

[   +1 ms] Skipping target: _composite

[   +2 ms] complete

[   +8 ms] Launching lib\main.dart on MI 9 in debug mode...

[   +5 ms] F:\flutter_folder\flutter\bin\cache\dart-sdk\bin\dartaotruntime.exe F:\flutter_folder\flutter\bin\cache\dart-sdk\bin\snapshots\frontend_server_aot.dart.snapshot --sdk-root F:\flutter_folder\flutter\bin\cache\artifacts\engine\common\flutter_patched_sdk/

--incremental --target=flutter --experimental-emit-debug-metadata --output-dill C:\Users\ADMINI~1\AppData\Local\Temp\flutter_tools.2528eb50\flutter_tool.b0386b9e\app.dill --packages F:\project_mix\fluter_v2\navers\.dart_tool\package_config.json

-Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation --filesystem-scheme org-dartlang-root --initialize-from-dill build\cache.dill.track.dill --verbosity=error --enable-experiment=alternative-invalidation-strategy

[  +35 ms] executing: E:\android_sdk\platform-tools\adb.exe -s emulator-5554 shell -x logcat -v time -t 1

[ +191 ms] <- compile package:navers/main.dart

[ +189 ms] --------- beginning of main

                    01-07 11:12:18.503 I/Finsky  ( 3039): [166] pls.h(7): Already at the latest configurations for experiment package com.google.android.finsky.regular.

[ +111 ms] executing: E:\android_sdk\platform-tools\adb.exe version

[ +191 ms] Android Debug Bridge version 1.0.41

                    Version 35.0.1-11580240

                    Installed as E:\android_sdk\platform-tools\adb.exe

                    Running on Windows 10.0.19042

[   +2 ms] executing: E:\android_sdk\platform-tools\adb.exe start-server

[ +180 ms] Building APK

[  +16 ms] executing: F:\android_studio_el\jbr\bin\java -version

[ +264 ms] Exit code 0 from: F:\android_studio_el\jbr\bin\java -version

[   +1 ms] Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf-8

           Picked up _JAVA_OPTIONS: -Dfile.encoding=utf-8

           openjdk version "11.0.15" 2022-04-19

           OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-9505619)

           OpenJDK 64-Bit Server VM (build 11.0.15+0-b2043.56-9505619, mixed mode)

[   +3 ms] executing: F:\JetBrainsToolbox\Android Studio\jbr\bin\java -version

[ +334 ms] Exit code 0 from: F:\JetBrainsToolbox\Android Studio\jbr\bin\java -version

[   +1 ms] Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf-8

           Picked up _JAVA_OPTIONS: -Dfile.encoding=utf-8

           openjdk version "17.0.11" 2024-04-16

           OpenJDK Runtime Environment (build 17.0.11+0--11852314)

           OpenJDK 64-Bit Server VM (build 17.0.11+0--11852314, mixed mode)

[   +7 ms] executing: F:\JetBrainsToolbox\Android Studio\jbr\bin\java -version

[ +352 ms] Exit code 0 from: F:\JetBrainsToolbox\Android Studio\jbr\bin\java -version

[        ] Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf-8

           Picked up _JAVA_OPTIONS: -Dfile.encoding=utf-8

           openjdk version "17.0.11" 2024-04-16

           OpenJDK Runtime Environment (build 17.0.11+0--11852314)

           OpenJDK 64-Bit Server VM (build 17.0.11+0--11852314, mixed mode)

[  +18 ms] executing: F:\JetBrainsToolbox\Android Studio\jbr\bin\java --version

[ +257 ms] Exit code 0 from: F:\JetBrainsToolbox\Android Studio\jbr\bin\java --version

[        ] openjdk 17.0.11 2024-04-16

           OpenJDK Runtime Environment (build 17.0.11+0--11852314)

           OpenJDK 64-Bit Server VM (build 17.0.11+0--11852314, mixed mode)

[        ] Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf-8

           Picked up _JAVA_OPTIONS: -Dfile.encoding=utf-8

[  +18 ms] CMake project not found, skipping support Android 15 16k page size migration.

[  +26 ms] Using gradle from F:\project_mix\fluter_v2\navers\android\gradlew.bat.

[   +2 ms] Running Gradle task 'assembleDebug'...

[   +6 ms] executing: [F:\project_mix\fluter_v2\navers\android/] F:\project_mix\fluter_v2\navers\android\gradlew.bat --full-stacktrace --info -Pverbose=true -Ptarget-platform=android-x64 -Ptarget=F:\project_mix\fluter_v2\navers\lib\main.dart

-Pbase-application-name=android.app.Application -Pdart-obfuscation=false -Ptrack-widget-creation=true -Ptree-shake-icons=false -Pfilesystem-scheme=org-dartlang-root assembleDebug

[ +173 ms] Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf-8

[   +3 ms] Picked up _JAVA_OPTIONS: -Dfile.encoding=utf-8

[ +212 ms] 错误: 找不到或无法加载主类 Dfile.encoding=utf-8

[   +1 ms] 原因: java.lang.ClassNotFoundException: Dfile.encoding=utf-8

[  +24 ms] Running Gradle task 'assembleDebug'... (completed in 405ms)

[+8399 ms] Error: Gradle task assembleDebug failed with exit code 1

[   +1 ms] "flutter run" took 12,980ms.

[  +26 ms] 

           #0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)

           #1      RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:860:9)

           <asynchronous suspension>

           #2      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1450:27)

           <asynchronous suspension>

           #3      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)

           <asynchronous suspension>

           #4      CommandRunner.runCommand (package:args/command_runner.dart:212:13)

           <asynchronous suspension>

           #5      FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:421:9)

           <asynchronous suspension>

           #6      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)

           <asynchronous suspension>

           #7      FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:364:5)

           <asynchronous suspension>

           #8      run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:131:9)

           <asynchronous suspension>

           #9      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)

           <asynchronous suspension>

           #10     main (package:flutter_tools/executable.dart:94:3)

           <asynchronous suspension>

           

           

[  +89 ms] ensureAnalyticsSent: 86ms

[        ] Running 2 shutdown hooks

[   +5 ms] Shutdown hooks complete

[   +7 ms] exiting with code 1


写回答

1回答

CrazyCodeBoy

2025-01-08

从日志和错误信息来看,问题的主要原因是环境变量 JAVA_TOOL_OPTIONS 和 _JAVA_OPTIONS 的设置有误,具体表现为 Java 在运行时将 -Dfile.encoding=utf-8 误解为主类,而不是正确的 JVM 参数。

解决步骤:

1. 检查并移除错误的环境变量

你需要检查系统的环境变量设置,并移除 JAVA_TOOL_OPTIONS 和 _JAVA_OPTIONS 中的错误配置。

Windows 系统

1. 打开 "系统属性" > "高级" > "环境变量"。


2. 在 "系统变量" 和 "用户变量" 中找到 JAVA_TOOL_OPTIONS 和 _JAVA_OPTIONS。


3. 检查它们的值是否包含 -Dfile.encoding=utf-8。如果存在,将其删除或修改为正确的格式。



临时解决方案 如果不方便修改系统环境变量,可以在运行命令时清除这两个变量:

set JAVA_TOOL_OPTIONS=
set _JAVA_OPTIONS=
flutter run


2. 设置正确的文件编码(可选)

如果你需要强制指定文件编码为 UTF-8,可以使用以下命令运行:

set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
set _JAVA_OPTIONS=-Dfile.encoding=UTF-8
flutter run

3. 检查 Java 版本

根据日志,你的项目使用的是 JDK 11 和 JDK 17。需要确保:

系统使用的是 Flutter 支持的 JDK 版本(推荐 JDK 11 或 JDK 17)。

如果使用多个 JDK,确保 JAVA_HOME 指向正确的 JDK 版本。


运行以下命令检查 JAVA_HOME 是否正确:

echo %JAVA_HOME%

确保路径指向你期望的 JDK。

4. 清理 Flutter 和 Gradle 缓存

清理缓存并重新构建项目可能会解决一些潜在问题:

flutter clean
flutter pub get

删除 .gradle 文件夹:

cd android
gradlew clean

然后重新运行项目:

flutter run

5. 如果问题依旧存在

尝试通过以下步骤进一步定位问题:

1. 检查 gradle.properties 文件,确保没有错误的 JVM 配置。


2. 强制同步 Gradle 配置:

cd android
./gradlew assembleDebug --refresh-dependencies


3. 确保 Flutter 和 Android Studio 是最新版本,并正确配置了 Android SDK 和 NDK。



完成以上步骤后,问题应该能解决。如果仍然有问题,可以提供最新的错误日志以进一步排查。

0
0

ChatGPT + Flutter快速开发多端聊天机器人App

ChatGPT + Flutter快速开发多端聊天机器人App

343 学习 · 90 问题

查看课程