簡體   English   中英

Android Studio 在沒有 sdkmanager 的情況下安裝

[英]Android Studio installs without sdkmanager

我一直在使用 macOS 10.15.3 在 Flutter 中編程,針對 iOS 設備。 今天我也嘗試安裝 Android Studio,以進行擴展。 安裝沒有錯誤,但在Library/Android/sdk/中沒有tools子目錄,這是一個問題,因為sdkmanager應該在Library/Android/sdk/tools/bin

我注意到這一點是因為 running flutter doctor給了我:

    ✗ 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(沒有區別)。 網上發布的其他解決方案都是講Java版本的,所以我把JRE從1.7升級到1.8,然后嘗試重新安裝Android Studio(沒有區別),然后將JDK升級到最新(所以現在Java版本是11.0.6)並嘗試安裝再次Android Studio(沒有區別)。 在上面我也將 Flutter 升級到 v1.12.13+hotfix.8,但是這個錯誤不會消失。

如果我輸入flutter doctor --android-licenses然后我得到:

    Android sdkmanager tool not found (/Users/macuser/Library/Android/sdk/tools/bin/sdkmanager).
    Try re-installing or updating your Android SDK,
    visit https://flutter.dev/setup/#android-setup for detailed instructions.

這就是我第一次注意到我缺少 Android Studio 的一部分的方式。

我嘗試通過自己創建一個tools/bin子目錄然后將sdkmanager從插件的Library/Android/sdk/cmdline-tools/latest/bin復制到我的新Library/Android/sdk/tools/bin來作弊。 然而,這並沒有欺騙 Flutter。 運行flutter doctor --android-licenses導致:

A newer version of the Android SDK is required. To update, run:
/Users/macuser/Library/Android/sdk/tools/bin/sdkmanager --update

這是錯誤的,因為 Android SDK 是最新的。

有誰知道為什么 Android Studio 會一直缺少tools/bin子目錄和里面的好東西? 如果我忽略了一些基本的東西,謝謝和抱歉。

更新 1 (2020-02-29)

似乎最新版本的 Android SDK 將“ Android SDK 工具”包重命名為“ Android-SDK 命令行工具”。 但不幸的是,目前 Flutter SDK 的穩定版本 ( v1.12.13+hotfix.8 ) 與此更改不兼容,並且一直顯示錯誤消息。

圖片說明

解決方法:

正如@Mark Ebden 建議的那樣,您只需在SDK 工具頁面上取消選中隱藏過時的包復選框,您就會看到Android SDK Tools (Obsolete) 26.1.1 安裝它,你就可以開始了。 如果您發現任何遺漏,請閱讀以下詳細說明。

有關更多信息,請參閱 flutter repo 上的問題。


這是在使用最新版本的 Mac OS 安裝 android studio 時所需的完整詳細信息。

1.安裝Android Studio穩定版。

2.打開安卓工作室

3. 打開 SDK 管理器。 請參閱下面的屏幕截圖。

在此處輸入圖片說明

4. 確保你已經下載了所有需要的東西。 請參閱下面的屏幕截圖。

在此處輸入圖片說明

在此處輸入圖片說明

請注意,我為我的 Android SDK 使用自定義位置 ( /Users/darish/development/sdk/android ) 而不是默認位置 (Library/Android/sdk/)

5. 進入你的主目錄並檢查是否有 .bash_profile 。 如果是,打開它,如果不是,創建一個。 將以下內容添加到該文件中。

 export PATH="$PATH:~/development/sdk/flutter/bin"
 export ANDROID_HOME="/Users/darish/development/sdk/android"
 export PATH="$PATH:$ANDROID_HOME/platform-tools"

6. 完成上述所有步驟后,運行 flutter doctor --android-licenses 並接受所有許可。

flutter doctor --android-licenses

7. 現在運行 flutter doctor 查看一切正常。 如果您需要任何進一步的幫助,請告訴我。 :)

就是這樣,祝你有美好的一天:)

什么對我有用:

  1. 運行 flutter doctor --android-licenses -v
  2. 我收到一條消息,內容如下:

$ flutter doctor --android-licenses -v Android sdkmanager 工具未找到(/Users/juarse1/Library/Android/sdk/tools/bin/sdkmanager)。 嘗試重新安裝或更新您的 Android SDK,訪問https://flutter.dev/setup/#android-setup獲取詳細說明。

 throwToolExit (package:flutter_tools/src/base/common.dart:28:3) AndroidLicenseValidator.runLicenseManager (package:flutter_tools/src/android/android_workflow.dart:311:7) Doctor.diagnose (package:flutter_tools/src/doctor.dart:243:38)

這是因為 Android SDK 沒有找到命令工具,但這需要從過時的包中強制拉取,因此: 3. 轉到 Android Studio -> 首選項 -> 系統設置 -> Android SDK -> SDK 工具部分 4. 取消選中在底部隱藏過時的包 5. 確保選中 BOTH 選項:

Android SDK 平台工具和 Android SDK 工具(已過時)

  1. 好的,關閉 Android Studio
  2. 運行 flutter doctor --android-licenses,應該可以工作!

問題似乎是在 java 11(或 9 和 10 )中,jaxb 庫不包含在 JDK 中,android studio sdkmanager 無法讀取許可證 xml 文件。 您必須在類路徑中包含此庫(如果您使用的是 Java 11),您可以按照此處發布的說明進行操作(它在 Windows 10 中對我有用)

https://medium.com/@parsher/flutter-android-sdkmanager-update-with-jdk-12-ad8098165472

最后一步不是必需的。 在包含類路徑行之后,運行 de flutter doctor ,一切都應該沒問題。

如果您使用的是 Java 11 或更高版本,則只需要 JDK 11/12 運行時未包含的 jaxb 庫(尤其是在 Win 10 上)。

請按照以下步驟操作:

  1. 從位置下載wget工具-> https://eternallybored.org/misc/wget/並在電腦中設置環境變量路徑,在cmd提示符下運行wget命令

  2. 找到您的 Android SDSK\\tools 文件夾 (<ANDROID_SDSK>\\tools) 並使用 cd 命令更改目錄: cd <ANDROID_SDSK>\\tools

  3. 工具文件夾中執行以下命令:

    mkdir jaxb_lib

    wget https://repo1.maven.org/maven2/javax/activation/activation/1.1/activation-1.1.jar -O jaxb_lib/activation.jar

    wget https://repo1.maven.org/maven2/com/sun/xml/bind/jaxb-xjc/2.3.2/jaxb-xjc-2.3.2.jar -O jaxb_lib/jaxb-xjc.jar

    wget https://repo1.maven.org/maven2/com/sun/xml/bind/jaxb-core/2.3.0.1/jaxb-core-2.3.0.1.jar -O jaxb_lib/jaxb-core.jar

    wget https://repo1.maven.org/maven2/org/glassfish/jaxb/jaxb-jxc/2.3.2/jaxb-jxc-2.3.2.jar -O jaxb_lib/jaxb-jxc.jar

    wget https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar -O jaxb_lib/jaxb-api.jar

    wget https://repo1.maven.org/maven2/com/sun/xml/bind/jaxb-impl/2.3.2/jaxb-impl-2.3.2.jar -O jaxb_lib/jaxb-impl.jar

    wget https://repo1.maven.org/maven2/com/sun/istack/istack-commons-runtime/3.0.8/istack-commons-runtime-3.0.8.jar -O jaxb_lib/istack-commons-runtime。罐

  4. 轉到<ANDROID_SDSK>\\tools\\bin文件夾並使用您喜歡的文本編輯器(記事本即可)編輯sdkmanager.batavdmanager.bat文件。

  5. 在語句“@rem Execute sdkmanager”之前粘貼以下代碼以設置類路徑。

    set CLASSPATH=%CLASSPATH%;%APP_HOME%\\jaxb_lib\\jaxb-api.jar set CLASSPATH=%CLASSPATH%;%APP_HOME%\\jaxb_lib\\jaxb-core.jar set CLASSPATH=%CLASSPATH%;%APP_HOME%\\jaxb_lib\\jaxb -impl.jar set CLASSPATH=%CLASSPATH%;%APP_HOME%\\jaxb_lib\\jaxb-jxc.jar set CLASSPATH=%CLASSPATH%;%APP_HOME%\\jaxb_lib\\jaxb-xjc.jar set CLASSPATH=%CLASSPATH%;%APP_HOME% \\jaxb_lib\\activation.jar 設置 CLASSPATH=%CLASSPATH%;%APP_HOME%\\jaxb_lib\\istack-commons-runtime.jar

  6. 最后執行:<ANDROID_SDSK>\\tools\\bin\\sdkmanager --update

我們都完成了。 現在運行flutter doctor ,現在你的 android 許可證狀態錯誤應該消失了。 干杯!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM