【问题标题】:Installing Flutter on Opensuse在 Opensuse 上安装 Flutter
【发布时间】:2019-11-05 21:08:52
【问题描述】:

我正在尝试安装 Flutter。我已经下载了 SDK,设置了 Android Studio 和所有必要的工具。我面临的问题是关于Android License Status Unknown。在阅读了here 的问题之后。运行 flutter doctor -v 会给我以下信息:

[✓] Flutter (Channel stable, v1.9.1+hotfix.6, on Linux, locale en_US.UTF-8)
    • Flutter version 1.9.1+hotfix.6 at /home/zerocool/flutter/flutter
    • Framework revision 68587a0916 (8 weeks ago), 2019-09-13 19:46:58 -0700
    • Engine revision b863200c37
    • Dart version 2.5.0

[!] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /home/zerocool/Android/Sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /usr/local/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    ✗ Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for
      detailed instructions.

[!] Android Studio (version 3.5)
    • Android Studio at /usr/local/android-studio
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] VS Code (version 1.39.1)
    • VS Code at /usr/share/code
    • Flutter extension version 3.6.0

[!] Connected device
    ! No devices available

! Doctor found issues in 3 categories.

根据 github 讨论中的一个 cmets(上面的链接),我决定手动复制所有必需的库并更新 sdkmanager.sh 脚本中的 CLASSPATH 变量。这是我按照here 的建议下载的文件。下载的文件是:

-rw-r--r-- 1 zerocool users   69409 Oct 24  2009 activation.jar
-rw-r--r-- 1 zerocool users   27156 Dec 27  2018 istack-commons-runtime.jar
-rw-r--r-- 1 zerocool users  128076 Sep 12  2018 jaxb-api.jar
-rw-r--r-- 1 zerocool users  157148 May 18  2018 jaxb-core.jar
-rw-r--r-- 1 zerocool users 1017695 Jan  2  2019 jaxb-impl.jar
-rw-r--r-- 1 zerocool users  120605 Jan  2  2019 jaxb-jxc.jar
-rw-r--r-- 1 zerocool users  903197 Jan  2  2019 jaxb-xjc.jar

修改CLASSPATH后我有以下内容:

CLASSPATH=$APP_HOME/lib/dvlib-26.0.0-dev.jar:$APP_HOME/lib/jimfs-1.1.jar:$APP_HOME/lib/jsr305-1.3.9.jar:$APP_HOME/lib/repository-26.0.0-dev.jar:$APP_HOME/lib/j2objc-annotations-1.1.jar:$APP_HOME/lib/layoutlib-api-26.0.0-dev.jar:$APP_HOME/lib/gson-2.3.jar:$APP_HOME/lib/httpcore-4.2.5.jar:$APP_HOME/lib/commons-logging-1.1.1.jar:$APP_HOME/lib/commons-compress-1.12.jar:$APP_HOME/lib/annotations-26.0.0-dev.jar:$APP_HOME/lib/error_prone_annotations-2.0.18.jar:$APP_HOME/lib/animal-sniffer-annotations-1.14.jar:$APP_HOME/lib/httpclient-4.2.6.jar:$APP_HOME/lib/commons-codec-1.6.jar:$APP_HOME/lib/common-26.0.0-dev.jar:$APP_HOME/lib/kxml2-2.3.0.jar:$APP_HOME/lib/httpmime-4.1.jar:$APP_HOME/lib/annotations-12.0.jar:$APP_HOME/lib/sdklib-26.0.0-dev.jar:$APP_HOME/lib/guava-22.0.jar:/home/zerocool/Android/Sdk/tools/jaxb_lib/activation.jar:/home/zerocool/Android/Sdk/tools/jaxb_lib/jaxb-api.jar:/home/zerocool/Android/Sdk/tools/jaxb_lib/jaxb-impll.jar:/home/zerocool/Android/Sdk/tools/jaxb_lib/jaxb-xjc.jar:/home/zerocool/Android/Sdk/tools/jaxb_lib/istack-commons-runtime.jar:/home/zerocool/Android/Sdk/tools/jaxb_lib/jaxb-core.jar:/home/zerocool/Android/Sdk/tools/jaxb_lib/jaxb-jxc.jar

这并没有按预期解决问题,flutter doctor -v 仍然抱怨许可证。尝试运行sdkmanager --updatesdkmanager --android-licenses 会抛出NullPointerException,如下所示:

Warning: Found corrupted package.xml at /home/zerocool/Android/Sdk/build-tools/29.0.2/package.xml
Exception in thread "main" java.lang.NullPointerException
        at com.android.repository.impl.meta.SchemaModuleUtil.marshal(SchemaModuleUtil.java:265)
        at com.android.repository.impl.manager.LocalRepoLoaderImpl.writePackage(LocalRepoLoaderImpl.java:275)
        at com.android.repository.impl.manager.LocalRepoLoaderImpl.parsePackages(LocalRepoLoaderImpl.java:169)
        at com.android.repository.impl.manager.LocalRepoLoaderImpl.getPackages(LocalRepoLoaderImpl.java:124)
        at com.android.repository.impl.manager.RepoManagerImpl$LoadTask.run(RepoManagerImpl.java:518)
        at com.android.repository.api.RepoManager$DummyProgressRunner.runSyncWithProgress(RepoManager.java:397)
        at com.android.repository.impl.manager.RepoManagerImpl.load(RepoManagerImpl.java:365)
        at com.android.repository.api.RepoManager.loadSynchronously(RepoManager.java:290)
        at com.android.sdklib.repository.AndroidSdkHandler$RepoConfig.createRepoManager(AndroidSdkHandler.java:725)
        at com.android.sdklib.repository.AndroidSdkHandler.getSdkManager(AndroidSdkHandler.java:296)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.setSdkHandler(SdkManagerCliSettings.java:101)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.<init>(SdkManagerCli.java:95)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:74)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)

不确定在此之后我应该采取什么行动。不过,我还没有准备好重新安装或删除我当前的 JDK(如果我删除它,我担心任何依赖于 JDK 11 的东西都可能会崩溃)。我们将不胜感激。

【问题讨论】:

  • 您最初是如何获得 RPM 包的?

标签: android-studio flutter


【解决方案1】:

Java 1.8 很好。不要升级它 你运行过这个吗?

flutter doctor --android-licenses

如果不这样做并接受它的条款。

也参加这个回答: https://stackoverflow.com/a/49759126/10097848

【讨论】:

  • @seyedliAghamali 尝试运行您提供的 cmd 会得到以下结果:A newer version of the Android SDK is required. To update, run: /home/zerocool/Android/Sdk/tools/bin/sdkmanager --update。如上所述,尝试更新 sdkamanger 会导致 NullPointerException
【解决方案2】:

你应该安装 jdk8。下载JAXB,我觉得不兼容

【讨论】:

    猜你喜欢
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多