![](/img/trans.png)
[英]the android app crashes or not installs after building using android studio
[英]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
子目錄和里面的好東西? 如果我忽略了一些基本的東西,謝謝和抱歉。
似乎最新版本的 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 查看一切正常。 如果您需要任何進一步的幫助,請告訴我。 :)
就是這樣,祝你有美好的一天:)
什么對我有用:
$ 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 工具(已過時)
問題似乎是在 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 上)。
請按照以下步驟操作:
從位置下載wget工具-> https://eternallybored.org/misc/wget/並在電腦中設置環境變量路徑,在cmd提示符下運行wget命令
找到您的 Android SDSK\\tools 文件夾 (<ANDROID_SDSK>\\tools) 並使用 cd 命令更改目錄: cd <ANDROID_SDSK>\\tools
在工具文件夾中執行以下命令:
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。罐
轉到<ANDROID_SDSK>\\tools\\bin文件夾並使用您喜歡的文本編輯器(記事本即可)編輯sdkmanager.bat和avdmanager.bat文件。
在語句“@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
最后執行:<ANDROID_SDSK>\\tools\\bin\\sdkmanager --update
我們都完成了。 現在運行flutter doctor ,現在你的 android 許可證狀態錯誤應該消失了。 干杯!!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.