【问题标题】:JDK installation not found by flutter starter app颤振启动器应用程序找不到JDK安装
【发布时间】:2020-11-28 07:56:37
【问题描述】:

我已经克隆了the flutter repo 并安装了Android SDK command-line tools,并将它们设置在$HOME/Android 中。然后我通过将$ANDROID_HOME 设置为$HOME/Android,使flutter 知道SDK 安装。事情似乎已经解决了,<path-to-flutter> doctor 发现

  • Android SDK
  • 我的 Java JDK 8 安装(Ubuntu 18.04 上的 openjdk-8-jdk 包),以及
  • 已连接的带有 USB 调试功能的 Android 手机

我现在正在尝试按照test-run instructions 在命令行上构建第一个应用程序。 <path-to-flutter> create myapp 工作并产生一个myapp 目录。然后我尝试运行生成的入门应用程序:

cd myapp
~/myapp$ ANDROID_HOME=~/Android JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 <path-to-flutter> run

这会导致以下错误:

Launching lib/main.dart on ONEPLUS A6013 in debug mode...
                                                                        
FAILURE: Build failed with an exception.                                
                                                                        
* What went wrong:                                                      
Execution failed for task ':app:compileDebugKotlin'.                    
> Kotlin could not find the required JDK tools in the Java installation '/usr/lib/jvm/java-8-openjdk-amd64/jre' used by Gradle. Make sure Gradle is running on a JDK, not JRE.
                                                                        
* 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 10s                                                     
Running Gradle task 'assembleDebug'...                                  
Running Gradle task 'assembleDebug'... Done                        11.0s
Exception: Gradle task assembleDebug failed with exit code 1

我已经看到这个问题discussedbefore,但这些回复似乎都没有解决这个问题(至少在我的情况下)。从命令中可以看出我正在导出正确的$JAVA_HOME,而且,运行

./android/gradlew build

myapp 目录中确实有效:

~/myapp$ ./android/gradlew build

> Task :buildEnvironment

------------------------------------------------------------
Root project
------------------------------------------------------------

classpath
No dependencies

A web-based, searchable dependency report is available by adding the --scan option.

BUILD SUCCESSFUL in 319ms
1 actionable task: 1 executed

所以这似乎特定于flutter 本身,而不是gradle

【问题讨论】:

    标签: flutter kotlin gradle


    【解决方案1】:

    事实证明,这一定是路径问题。在我的个人资料(我的.bashrc)来源的文件中插入以下 sn-p 后,Flutter 入门应用程序构建(并在我的设备上弹出):

    # Java
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
    
    # Android
    export ANDROID_HOME=${HOME}/Android
    export ANDROID_SDK_ROOT=${HOME}/Android
    
    # Flutter
    export FLUTTER_HOME=${HOME}/repos/flutter
    PATH=${FLUTTER_HOME}/bin:$PATH; export PATH
    

    【讨论】:

      【解决方案2】:

      你可以这样做 -->

      sudo apt-get remove --auto-remove openjdk*
      sudo apt-get install openjdk-8-jre
      

      现在转到主页并按 ctrl+h 可以看到您的隐藏文件夹

      现在打开 .bashrc 或你的 .rc

      将这些粘贴到最后

      export PATH="$PATH:/snap/bin/flutter/bin"
      export PATH="$PATH:/usr/bin/java"
      export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre
      export ANDROID_SDK_ROOT=/home/<YOUR USER NAME>/Android/Sdk
      

      然后运行

      source ~/bashrc
      flutter doctor -v
      

      【讨论】:

        猜你喜欢
        • 2021-08-11
        • 2021-08-23
        • 1970-01-01
        • 2021-07-05
        • 2016-09-14
        • 2020-11-28
        • 2021-05-05
        • 2021-03-09
        • 1970-01-01
        相关资源
        最近更新 更多