ไม่ทราบสถานะใบอนุญาต Flutter.io Android


88

[!] Android toolchain - พัฒนาสำหรับอุปกรณ์ Android (Android SDK 27.0.3) >> • Android SDK a .. \ Android \ sdk •ไม่ได้กำหนดค่าตำแหน่ง Android NDK (ไม่บังคับมีประโยชน์สำหรับการรองรับการทำโปรไฟล์แบบเนทีฟ) •แพลตฟอร์ม android-27, build-tools 27.0.3 • Java ไบนารีที่ C: \ Program Files \ Android \ Android Studio \ jre \ bin \ java •เวอร์ชัน Java OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02) X สถานะใบอนุญาต Android ไม่ทราบ

ฉันได้รับข้อผิดพลาดกับ Android SDK เมื่อฉันเรียกใช้ Flutter doctor แม้ว่าฉันจะยังสร้าง / เรียกใช้งานบนอุปกรณ์ได้ ฉันแค่อยากรู้เกี่ยวกับวิธีแก้ไขปัญหานี้ ฉันเชื่อว่าฉันดาวน์โหลด Android SDK เวอร์ชันที่อัปเดตล่าสุดแล้วไม่แน่ใจว่าเกิดอะไรขึ้นเพราะฉันไม่มีปัญหานี้เมื่อสัปดาห์ที่แล้ว

## ปัญหาใหม่หลังจากทำตามการแก้ไขที่เป็นไปได้หลายประการในความคิดเห็นมันได้นำไปสู่ปัญหาใหม่ ฉันติดตั้ง android sdk P, 8 และ 7 เวอร์ชันใหม่กว่าพร้อมกับ jdk10 ใหม่ ยังไม่ได้รับการปรับปรุงอย่างชัดเจนเพียงพอ

C:\Flutter\flutter>flutter doctor --android-licenses
A newer version of the Android SDK is required. To update, run:
C:\Users\tdmil\AppData\Local\Android\sdk\tools\bin\sdkmanager --update

C: \ Flutter \ flutter> C: \ users \ ชื่อผู้ใช้ \ appdata \ local \ android \ sdk \ tools \ bin \ sdkmanager.bat - อัปเดต

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
        at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
        at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
        at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
        ... 5 more

อาจเป็นประโยชน์สำหรับการอ้างอิงในอนาคต ฉันใช้ Windows 10 และฉันมีเวอร์ชัน JDK 11 เป็นข้อเสนอแนะโดยส่วนใหญ่ของคนที่ผมปรับลด JDK ของฉันไป 8 flutter doctorรุ่นแล้วฉันจะดำเนินการ ยังคงบอกว่าต้องยอมรับใบอนุญาต จากนั้นฉันก็วิ่งflutter doctor --android-licensesและพูดyesสำหรับข้อตกลงใบอนุญาตทั้งหมด ในที่สุดปัญหาก็หมดไป :). Take away กำลังลดระดับเป็น JDK 8 จะแก้ไขปัญหาได้
Gihanmu

คำตอบ:


77

หากคุณอัปเดต Android SDK ใบอนุญาตอาจมีการเปลี่ยนแปลง ขึ้นอยู่กับว่าคุณทำการอัปเดตอย่างไรคุณอาจหรือไม่ได้รับแจ้งให้ยอมรับการเปลี่ยนแปลงหรืออาจจะไม่บันทึกความจริงที่ว่าคุณยอมรับการอัปเดตในลักษณะที่กระพือสามารถเข้าใจได้

ในการแก้ไขให้ลองเรียกใช้

flutter doctor --android-licenses

สิ่งนี้จะแจ้งให้คุณยอมรับใบอนุญาต (อาจขอให้คุณก่อนในกรณีที่พิมพ์yและกด Enter - แม้ว่ามันจะบอกคุณได้ก็ตาม)

หากคุณยังคงมีปัญหาหลังจากทำเช่นนั้นอาจคุ้มค่าที่จะเปิดข้อผิดพลาดใหม่ในที่เก็บ Flutter Githubหรือเพิ่มความคิดเห็นเกี่ยวกับปัญหาที่มีอยู่เช่นปัญหานี้เนื่องจากอาจเป็นสิ่งที่คุณเห็น


10
มันบอกฉันว่าจำเป็นต้องมี Android SDK เวอร์ชันใหม่กว่า ในการอัปเดตให้เรียกใช้: C: \ Users \ abc \ AndroidSDK \ tools \ bin \ sdkmanager --update ฉันควรทำอย่างไรดี?
Huzaifa Asif

ถ้าคุณลองเรียกใช้คำสั่งนั้นแล้ว? ควรแก้ไขปัญหาด้วยความหวัง หากล้มเหลวคุณอาจต้องการค้นหาคำถามอื่นหรือถามคำถามใหม่
rmtmckenzie

2
@HuzaifaAsif ฉันยังประสบปัญหานี้สองสามครั้งตามที่ Tommie C ตอบไว้ด้านล่างลองติดตั้ง java 1.8 ด้วยตนเองและตั้งค่า $ JAVA_HOME ไปที่โฟลเดอร์ bin จากนั้นเรียกใช้ flutter doctor --android-licenses และยอมรับใบอนุญาตทั้งหมด หวังว่าจะช่วยได้
Deepak Joshi

เช่นเดียวกับวิธีที่คุณติดตั้ง SDK ใหม่ ... ฉันติดอยู่ในข้อผิดพลาดนี้ขณะที่ฉันใช้ Android Studio เวอร์ชัน 3.6
Mahmoud Harooney

แค่หัวขึ้น! สิ่งนี้ใช้ได้กับฉันที่ใช้ Java 8 เท่านั้น
Lucas Saldanha

51

ข้อผิดพลาด:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
        at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
        at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
        at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
        ... 5 more

เกิดขึ้นเนื่องจาก SDK เวอร์ชันปัจจุบันเข้ากันไม่ได้กับ Java 9

ดังนั้นในการแก้ปัญหาคุณสามารถปรับลดรุ่น java ของคุณเป็น Java 8 หรือด้วยวิธีแก้ปัญหาชั่วคราวคุณสามารถส่งออกตัวเลือกต่อไปนี้บนเทอร์มินัลของคุณ:

ลินุกซ์:

export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

Windows :

set JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

และเพื่อให้มันติดคุณสามารถส่งออก JAVA_OPTS ในแฟ้มประวัติของคุณบนลินุกซ์ ( .zshrc, .bashrcและอื่น ๆ ) หรือเพิ่มเป็นสภาพแวดล้อมอย่างถาวรบน Windows


จากนั้นคุณสามารถพิมพ์คำสั่ง flutter หรือ sdkmanager:

กระพือ :

flutter doctor --android-licenses

sdkmanager :

sdkmanager --licenses

และพิมพ์ Y เมื่อจำเป็นเพื่อยอมรับใบอนุญาต

ปล. สิ่งนี้ใช้ไม่ได้กับ Java 11/11 + ซึ่งไม่มีโมดูล Java EE สำหรับตัวเลือกนี้เป็นความคิดที่ดีปรับลดรุ่น Java ของคุณหรือรอให้กระพือปรับปรุง

Ref: JDK 11: จุดสิ้นสุดของถนนสำหรับโมดูล Java EE


4
อีกทางเลือกหนึ่งหากคุณติดตั้งทั้ง java 11 และ 8 คือการส่งออกจุด JAVA_HOME ไปที่ java8:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Cristiano

1
ฉันเปลี่ยน JAVA_HOME เป็น JDK 8 ในตัวแปรสภาพแวดล้อมบน Windows และใช้งานได้
GabrielBB

2
สิ่งนี้ไม่ทำงานตามที่java.se.eeถูกลบออกในเวอร์ชันใหม่ของ java
Phani Rithvij

1
คุณไม่สามารถทำได้ใน Java 11 คุณต้องติดตั้ง Java 8 ดูคำตอบนี้
Vahid

หากใช้ Linux คุณสามารถใช้: sudo update-alternate
--config

30

ทางออกที่ถูกต้องคือถ้าคุณติดตั้ง android studio แล้ว

  1. เปิดตัวจัดการ SDK
  2. ภายใต้เครื่องมือ SDK ให้ยกเลิกการเลือกซ่อนแพ็คเกจที่ล้าสมัยที่ด้านล่าง
  3. จากนั้นคุณจะเห็นตัวเลือกที่เรียกว่า Android SDK Tools (Obsolete)

ใส่คำอธิบายภาพที่นี่

  1. ตรวจสอบและสมัครและปล่อยให้สตูดิโอดาวน์โหลดแพ็คเกจ
  2. เมื่อรันคำสั่งเสร็จแล้วflutter doctorและควรแจ้งให้คุณรันflutter doctor --android-licenses เมื่อคุณรันคำสั่ง license ยอมรับใบอนุญาตทั้งหมดโดยกดปุ่ม y และควรแก้ปัญหา

ใส่คำอธิบายภาพที่นี่


คำตอบนี้แตกต่างจากคำตอบด้านบนหรือไม่
tdmiller

1
ตรงนี้เป็นเอกสารอย่างเป็นทางการในปัจจุบันสำหรับ Mac ณ 18 มีนาคม 2020 - ดูflutter.dev/docs/get-started/install/... เป็นปัญหาที่ทราบ

1
ขอบคุณสำหรับลิงค์ @yair ไม่รู้ว่า
maheshmnj

15

ฉันเขียนสิ่งนี้เนื่องจากความยุ่งยากในการติดตั้ง Flutter ... ปัญหาส่วนใหญ่เกิดจากปัญหาการกำหนดค่าอย่างง่าย ทำตามขั้นตอนเหล่านี้เพื่อแก้ไขปัญหาของคุณ

ขั้นตอนที่ 1: ใบอนุญาตAndroid - ใบอนุญาตAndroidจะแก้ปัญหาส่วนใหญ่ได้

ตั้งแต่คุณอยู่ที่นี่คุณได้มาถึง "Android สถานะใบอนุญาตที่ไม่รู้จัก" ปัญหาสำหรับ Android flutter doctor --android-licensesโซ่เครื่องมือเป็นจำนวนมากปัญหาลอง ถ้าคุณดีกับ config. ควรถามว่าใช่แล้วกด y และ Voila แต่ถ้ามันแสดงไฟล์

ใส่คำอธิบายภาพที่นี่(C\Users\__\local\Android\sdk\tools\bin\sdkmanager)ไม่พบเครื่องมือ sdkmanager Android ไปที่ขั้นตอนที่สอง

ขั้นตอนที่ 2: การติดตั้ง SDK Manager จาก Android Studio

เปิด Android Studio ของคุณFile-> settings->System settings(left tab) ->Android SDK,ไปที่SDK Tool sectionในหน้านั้นยกเลิกการเลือกซ่อนแพ็คเกจที่ล้าสมัยเลือกAndroid SDL tools(obsolete)และกดใช้

ใส่คำอธิบายภาพที่นี่ มันจะติดตั้ง SDK และคุณยืนยันโดยไปและตรวจสอบว่ามีเส้นทางนี้หรือไม่(C\Users\__\local\Android\sdk\tools\bin\sdkmanager)

ขั้นตอนที่ 3: ทำซ้ำ 1

ทำซ้ำขั้นตอนที่ 1 หลังการติดตั้งในบรรทัดคำสั่งใหม่ตรวจสอบว่าใช้งานได้หรือไม่ให้ไปที่ขั้นตอนที่ 4

ขั้นตอนที่ 4: sdkmanager - อัปเดต

มันจะถามคุณอัปเดต SDK ได้เพียงแค่เรียกใช้คำสั่งที่กำหนดใน C\Users\__\local\Android\sdk\tools\bin\sdkmanager --updateterminal ถ้ามันกำลังทำงานอยู่แสดงว่ามันเจ๋ง ปล่อยให้มันเสร็จสิ้นและทำซ้ำขั้นตอนที่ 1 มิฉะนั้นหากมีการทิ้งข้อยกเว้นบางอย่างเช่นjava.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchemaฯลฯ แสดง java_error ว่า java ของคุณไม่ได้ติดตั้งหรือไม่ใช่เวอร์ชันที่ถูกต้อง ไปที่ขั้นตอนถัดไป

ขั้นตอนที่ 5: เส้นทาง JAVA 8.1 และ JAVA_HOME

ติดตั้ง JAVA 8.1 และตั้งค่าเส้นทาง JAVA_HOME ตรวจสอบให้แน่ใจว่าเป็นเวอร์ชัน 8.1 (ลงทะเบียนบัญชีฟรีและดาวน์โหลดจาก oracle เวอร์ชัน 8.1 โปรดจำไว้ว่าด้านบน 11+ จะไม่ทำงานสำหรับการกระพือปีก ใส่คำอธิบายภาพที่นี่

หมายเหตุ : โดยyaniv maymon: หากคุณติดตั้ง Java ไว้ในคอมพิวเตอร์ของคุณแล้วและ sdkmanager - อัปเดตยังไม่ทำงาน ไปที่ตัวแปรสภาพแวดล้อมและอัปเดตพา ธ "JAVA_HOME" ไปยังโฟลเดอร์ jdk จากนั้นออกจากพรอมต์คำสั่งเปิดอีกครั้งและเรียกใช้คำสั่งอัพเดต -

ขั้นตอนที่ 6: ขั้นตอนสุดท้าย

หลังจากติดตั้งและตั้งค่าเส้นทางอย่างถูกต้องให้รันC\Users\__\local\Android\sdk\tools\bin\sdkmanager --update คำสั่งในเทอร์มินัลใหม่และจะใช้งานได้

ขั้นตอนที่ 7: รันใหม่อีกครั้งกระพือแพทย์ , flutter doctor --android-licensesคุณสามารถเห็นมันบอกว่าจะเรียกใช้คำสั่ง ดังนั้นให้รันflutter doctor --android-licenses ในเทอร์มินัลแล้วกด y เมื่อถูกถาม


หากคุณติดตั้ง Java ไว้ในคอมพิวเตอร์ของคุณแล้วและ sdkmanager --update ยังไม่ทำงาน ไปที่ตัวแปรสภาพแวดล้อมและอัปเดตพา ธ "JAVA_HOME" ไปยังโฟลเดอร์ jdk จากนั้นออกจากพรอมต์คำสั่งเปิดอีกครั้งและรันคำสั่งอัปเดต
yaniv maymon

11

นี่คือขั้นตอนที่ช่วยแก้ปัญหาของฉัน:

  1. เปิดเทอร์มินัลของคุณ
  2. ชนิด flutter doctor --android-licenses
  3. กดyเพื่อยอมรับกระบวนการนี้อาจเกิดขึ้นหลายครั้ง เสร็จแล้ว!

8

ฉันพบวิธีแก้ปัญหานี้เนื่องจากต้องใช้ JDK 8 (คุณต้องมีบัญชีเพื่อดาวน์โหลดเดี๋ยวนี้!) - ใช้ OpenJDK แบบฝังที่มาพร้อมกับ Android Studio:

เพิ่มสิ่งนี้ให้กับคุณ~/.profileหรือสิ่งที่คล้ายกัน:

# Use the JDK embedded with Android Studio for command-line builds
export JAVA_HOME='/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home'

การสร้างบรรทัดคำสั่งผ่านgradlewและสคริปต์อื่น ๆ ที่มีความประพฤติเรียบร้อยจะใช้ SDK เวอร์ชันที่มาพร้อมกับ Android Studio 2.2+

* Mac ของฉันยังคงใช้ Java 7 เริ่มต้น


8

เพียงติดตั้งเครื่องมือบรรทัดคำสั่ง sdk (ล่าสุด) ด้านล่างใน android studio ใส่คำอธิบายภาพที่นี่


ฉันก็พลาดเหมือนกัน :) ขอบคุณมาก
Abhishek Thapliyal

1
ฉันต้องทำสิ่งนี้ก่อนที่จะวิ่งflutter doctor --android-licenses
geg

5

นี่เป็นปัญหาของฉันเช่นเดียวกับ# 16025

สำหรับข้อยกเว้นในเธรด "main" java.lang.NoClassDefFoundError: javax / xml / bind / annotation / XmlSchema ปัญหานี้มักเกิดขึ้นเมื่อคุณติดตั้ง Java 9 มาก่อน BTW มันเข้ากันไม่ได้กับ android-sdk ลองลบ Java 9 JDK ถ้ายังมีอยู่

โดยทั่วไป JAXB API จะถือว่าเป็น Java EE API ดังนั้นจึงไม่มีอยู่บนพา ธ คลาสดีฟอลต์ใน Java SE 9 อีกต่อไป Java 9 แนะนำแนวคิดของโมดูลและโดยดีฟอลต์โมดูลรวม java.se จะพร้อมใช้งานบนคลาส เส้นทาง (หรือมากกว่าเส้นทางโมดูล) ตามที่ชื่อมีความหมายโมดูลรวม java.se ไม่รวม Java EE APIs ที่มาพร้อมกับ Java 6/7/8 แบบดั้งเดิม โชคดีที่ Java EE API เหล่านี้ที่มีให้ใน JDK 6/7/8 ยังคงอยู่ใน JDK แต่ก็ไม่ได้อยู่ในเส้นทางคลาสตามค่าเริ่มต้น Java EE API เพิ่มเติมมีให้ในโมดูลต่อไปนี้

วิธีแก้ปัญหาหากคุณติดตั้ง Java9 / 10

  1. เปิด sdkmanager ในโปรแกรมแก้ไขของคุณ
  2. ต่อท้าย DEFAULT_JVM_OPTS

แทนที่

DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME"'

ด้วยอันนี้

DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
  1. บันทึกไฟล์และออกจากโปรแกรมแก้ไขจากนั้นลองเรียกใช้คำสั่งอีกครั้ง

สำหรับปัญหาที่ไม่ทราบสถานะใบอนุญาต Android ฉันได้พยายามแก้ไขตามขั้นตอนเหล่านี้:

  1. เปิดเทอร์มินัล
  2. ไปที่ตำแหน่ง Android SDK ของคุณ C: \ Users% user% \ AppData \ Local \ Android \ Sdk \ tools \ bin หรือ ~ / Library / Android / sdk / tools / bin

  3. รันคำสั่ง: ./sdkmanager --license

อ้างอิง

ไม่สามารถเรียกใช้ sdkmanager --list (Android SDK) ด้วย Java 9

วิธีการแก้ปัญหา java.lang.NoClassDefFoundError: javax / xml / bind / JAXBException ใน Java 9


ฉันลองวิธีแก้ปัญหานั้นดูเหมือนว่าไฟล์จะเปลี่ยนไปเล็กน้อยตั้งแต่นั้นมา แต่ฉันก็ยังทำการแก้ไขที่จำเป็น แต่ก็ยังไม่มีโชค ฉันคิดว่าฉันจะหวังว่าจะมีการอัปเดตในภายหลังซึ่งจะแก้ไขปัญหานี้ได้เนื่องจากฉันยังสามารถเรียกใช้แอปพลิเคชันได้ ขอบคุณอย่างไรก็ตาม!
tdmiller

4

บรรทัดนี้ให้ไว้ในชุมชนปัญหา GitHub แก้ไขปัญหาของฉันนี่เป็นเพียงกรณีที่จะช่วยคนอื่น

@rem Execute sdkmanager

"%JAVA_EXE%" %DEFAULT_JVM_OPTS% -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee %JAVA_OPTS% %SDKMANAGER_OPTS% -classpath "%CLASSPATH%" com.android.sdklib.tool.sdkmanager.SdkManagerCli %CMD_LINE_ARGS%

4

นี่คือทางออกของฉัน:

  1. ติดตั้ง SDKMan

    $ curl -s "https://get.sdkman.io" | bash

  2. ตั้งค่า bash_profile ของคุณ

    $ source "$HOME/.sdkman/bin/sdkman-init.sh

    $ source ~/.bash_profile

  3. ค้นหา java sdk และเลือกต้องการติดตั้งเวอร์ชัน

    $ sdk ls java

    $ sdk install java 8.0.192-zulu

  4. คัดลอกข้อความเตือนแพทย์ที่กระพือปีกของคุณเพื่ออัปเดต sdkmanager

    $ /Users/YourUserName/Library/Android/sdk/tools/bin/sdkmanager --update

  5. หลังจาก 1 ~ 4 ให้ทำซ้ำ

    $ flutter doctor --android-licenses


หยุด! java 8.0.192-zulu ไม่พร้อมใช้งาน สาเหตุที่เป็นไปได้: * 8.0.192-zulu เป็นเวอร์ชันที่ไม่ถูกต้อง * ไบนารี java ไม่เข้ากันกับดาร์วิน * java ยังไม่ได้รับการเผยแพร่
Hos Mercury

3

MacOS 10.15: Android Studio 3.5.1:

วิธีแก้ปัญหาที่เหมาะกับฉันคือใช้เครื่องมือ Java Environment jenv (ติดตั้งผ่านhomebrew ) เครื่องมือนี้เปลี่ยน$ JAVA_HOMEเมื่อมีการสลับระหว่างเวอร์ชันจาวา

ในกรณีของฉันฉันติดตั้ง Java หลายเวอร์ชันและเวอร์ชันสากลที่ใช้อยู่ในปัจจุบันเป็นค่าเริ่มต้น ฉันยังพบว่าจำเป็นต้องแสดงความคิดเห็นเกี่ยวกับตัวแปรสภาพแวดล้อม$ JAVA_HOMEในไฟล์.bash_profileเมื่อใช้เครื่องมือนี้

ใน Terminal ฉันเข้าไป jenv global 1.8เพื่อให้ java 1.8 ทำงานแทนเวอร์ชันที่ใหม่กว่า (ฉันติดตั้งหลายเวอร์ชัน)

หลังจากนั้น:

flutter doctor --android-licenses

หรือ

sdkmanager --licenses

ทั้งสองทำงานได้ดี

หมายเหตุ: คุณอาจต้องออกและเปิดเทอร์มินัลเชลล์ของคุณใหม่หากคุณต้องกำหนดตัวแปรสภาพแวดล้อม $ JAVA_HOME ใหม่


3

อ้างอิง - https://robbinespu.gitlab.io/blog/2020/03/03/flutter-issue-fixed-android-license-status-unknown-on-windows/

ดังนั้นวิธีแก้ปัญหาให้เปิดตัวจัดการ SDK ของคุณจากนั้นยกเลิกการเลือก Hide Obsolete Packages

ใส่คำอธิบายภาพที่นี่

ตอนนี้คุณจะเห็นAndroid SDK Tools (Obsolete) 26.1.1ปรากฏขึ้น เลือกแพ็คเกจapply buttonนั้นแล้วกดปุ่มตกลง มันจะดาวน์โหลด sdk จากนั้นrestartAndroid studio

ดีตอนนี้ถ้าคุณวิ่งflutter doctorคุณจะได้รับผลบวกดังต่อไปนี้

PS D:\Workplace\flutter_projects> flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.12.13+hotfix.8, on Microsoft Windows [Version 10.0.18363.657], locale en-MY)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[√] Android Studio (version 3.6)
[√] VS Code (version 1.42.1)
[√] Connected device (1 available)

• No issues found!

PS D:\Workplace\flutter_projects> flutter doctor --android-licenses -v
All SDK package licenses accepted.======] 100% Computing updates...

เรียกใช้flutter doctor --android-licensesและป้อน Y เมื่อถูกถาม

หากจำเป็นเราสามารถดาวน์โหลดแพ็คเกจด้วยตนเองได้ที่นี่https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip (สำหรับผู้ใช้ Windows) หวังว่าบทช่วยสอนนี้จะช่วยผู้ที่กำลังมองหาวิธีแก้ปัญหา


สิ่งนี้ช่วยฉันได้จริงๆ :)
พูด OL

2

flutter doctor --android-licensesสำหรับบรรดาของคุณที่อยู่ในลินุกซ์และให้ได้รับข้อผิดพลาดระหว่าง

ฉันได้รับคำเตือนไม่สามารถสร้างการตั้งค่าได้ตลอดเวลาเมื่อพยายามยอมรับใบอนุญาตซึ่งฉันแก้ไขโดยระบุตำแหน่ง SDK:

sdkmanager --sdk_root=/home/adel/bin/android-sdk --licenses

จากนั้น Sdkmanager พิมพ์: ยอมรับสิทธิ์การใช้งานแพ็คเกจ SDK ทั้งหมด

อย่างไรก็ตาม Flutter ยังคงให้ข้อผิดพลาดที่ไม่รู้จักสถานะใบอนุญาต Android และการพยายามโทรflutter doctor --android-licensesจะทำให้ฉันเหมือนเดิมไม่สามารถสร้างข้อผิดพลาดการตั้งค่าที่ฉันเคยได้รับ

ในการแก้ไขปัญหานี้ฉันได้แก้ไขsdkmanagerสคริปต์ที่อยู่ใน$ {your android tools location} / tools / bin / และเปลี่ยนบรรทัดสุดท้ายจาก:

exec "$JAVACMD" "$@"

ถึง:

exec "$JAVACMD" "$@" --sdk_root=/home/adel/bin/android-sdk

สิ่งนี้จะทำให้ Flutter เรียก sdkmanager ในขณะที่ส่งอาร์กิวเมนต์ sdk_root ที่จำเป็นซึ่งเป็นการเรียกครั้งสุดท้ายไปที่ flutter doctor --android-licensesแก้ไขปัญหา

ฉันไม่ต้องใช้ Java 8


ขอบคุณสำหรับการตอบกลับสิ่งนี้ช่วยแก้ปัญหาของฉันได้ ฉันไม่เข้าใจว่าทำไมมีคนลดคะแนนลง ขอขอบคุณอีกครั้ง.
marijnz0r

1
ทางออกเดียวบนอินเทอร์เน็ตที่เหมาะกับฉัน! ขอบคุณเพื่อน! :)
Punita Ojha

1

เปิดไฟล์ flutter_console.bat จากโฟลเดอร์รากของ flutter SDK และเรียกใช้คำสั่ง

flutter doctor --android-licenses

จะยอมรับใบอนุญาตของการอัปเดต Android SDK ที่ดาวน์โหลดใหม่ คุณต้องเรียกใช้ทุกครั้งเมื่อใดก็ตามที่คุณดาวน์โหลดและอัปเดต Android SDK


1

ลองปรับลดรุ่น java ของคุณสิ่งนี้จะเกิดขึ้นเมื่อเวอร์ชัน java ระบบของคุณไม่สามารถใช้งานร่วมกับ Android ได้ เมื่อคุณเปลี่ยนเวอร์ชัน java แล้วให้รันflutter doctorมันจะยอมรับใบอนุญาตโดยอัตโนมัติ


1

ฉันปรับลดรุ่น Java เป็น 1.8 และได้รับการแก้ไขแล้วนี่คือลิงค์สำหรับดาวน์โหลดJDK8

รันคำสั่งต่อไปนี้หลังจากติดตั้ง JDK8

   flutter doctor --android-licenses

1

สภาพแวดล้อมของฉัน: Windows 10 64bit, OpenJDK 14.0.2

ข้อผิดพลาดเริ่มต้นเป็นไปตามรายงานข้างต้น

หลังจากแก้ไขข้อผิดพลาดแล้ว

  1. แทนที่ " C: <installation-folder> \ openjdk-14.0.2_windows-x64_bin \ jdk-14.0.2 " ด้วย "* C: \ Program Files \ Android \ Android Studio \ jre * " ในตัวแปรสภาพแวดล้อม PATH & JAVA_HOME
  2. วิ่งกระพือแพทย์ - ใบอนุญาต Androidและเลือกyสำหรับการแจ้งเตือน



0
  1. เปิด Android Studio
  2. ไปที่ไฟล์ -> การตั้งค่า
  3. ค้นหา AndroidSDK .
  4. อัปเดตระดับ API ของคุณเป็นเวอร์ชันล่าสุด
  5. จากนั้นโหลด Android Studio ใหม่

0

สำหรับคนที่ยังคงประสบปัญหา :
ตามคำตอบด้านล่างของ Tommie C, Aba และคนอื่น ๆ อีกไม่กี่คน แต่อาจไม่ชัดเจนพอที่ฉันพบ
ลองติดตั้งjava 1.8ด้วยตนเองตามที่อธิบายไว้ที่นี่บน windows / linux: [ https://www3.ntu.edu.sg/home/ehchua/programming/howto/JDK_Howto.html]
และตั้งค่าตัวแปร$ JAVA_HOME (เส้นทาง jdk)
บน windows ตั้งค่า jdk path ($ JAVA_HOME): [ วิธีตั้งค่า java_home บน Windows 7? .
บน Linux: [ /ubuntu/175514/how-to-set-java-home-for-java]
จากนั้นเรียกใช้flutter doctor --android-licensesและยอมรับใบอนุญาตทั้งหมด หวังว่าจะช่วยได้


0

ฉันพบโซลูชันนี้ฉันดาวน์โหลด JDK 8 จากนั้นฉันเพิ่มชื่อพา ธ ไฟล์ดาวน์โหลด jdk ของ JAVA_HOME ลงในตัวแปรผู้ใช้ในตัวแปรสภาพแวดล้อม


0

ฉันประสบปัญหาเดียวกันดังที่กล่าวไว้ข้างต้นฉันลองสิ่งเหล่านี้

  1. ติดตั้ง JDK 1.8 และตั้งค่า JAVA_HOME env ของฉันเป็น 1.8 - ไม่ได้ผล
  2. สตูดิโอ Android ของฉันไม่แสดง "Android SDK Tools (ล้าสมัย)" แต่มี "Android SDK Tools"

นี่คือสิ่งที่ใช้ได้ผลสำหรับฉัน:

  1. ลบ "Android SDK Tools" จาก SDK Manager
  2. ติดตั้งใหม่โดยการยกเลิกการเลือก "ซ่อนแพ็คเกจที่ล้าสมัย" ก่อนจากนั้นเลือก "Android SDK Tools (Obsolete)" จากนั้นทำการติดตั้ง
  3. เรียกใช้flutter doctor --android-licensesและเลือกyสำหรับข้อความแจ้ง
  4. วิ่งflutter doctorแล้วทุกอย่างจะดี !!!!

0

ฉันประสบปัญหา toolsโฟลเดอร์ก็ยังหายไปจากAndroid SDKโฟลเดอร์ ฉันเชื่อว่าtoolsโฟลเดอร์จะปรากฏขึ้นหลังจากติดตั้งเท่านั้นAndroid SDL tools(obsolete) ตัวเลือกนี้ไม่สามารถใช้ได้สำหรับฉัน

วิธีแก้ไข: ฉันอัปเกรดJavaจากเวอร์ชัน 8 เป็นเวอร์ชัน 12 และฉันสามารถติดตั้งเครื่องมือได้ คุณยังอาจได้รับข้อผิดพลาดในขณะที่ให้คำสั่งSome Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses flutter doctor -vเรียกใช้คำสั่งflutter doctor --android-licensesใบอนุญาตจะได้รับการตรวจสอบเมื่อคุณคลิกyesทุกครั้งที่คำถามนี้ปรากฏขึ้นAccept? (y/N):

หวังว่ามันจะช่วยใครบางคนได้



0

สำหรับคนที่ใช้ Windowsวิธีแก้ปัญหาระยะสั้นคือการดาวน์เกรดเป็น JDK8 หวังว่า Flutter จะแก้ไขปัญหาได้เร็ว ๆ นี้สำหรับ Android SDK ที่จะทำงานร่วมกับ> JDK8


0

หลังจากทำการวิเคราะห์มากมายสำหรับ Ubuntu 20.04 ของฉันฉันพบวิธีแก้ปัญหาแล้ว

สำหรับฉันข้อผิดพลาด/home/rk/Android/Sdk/tools/bin/sdkmanagerไม่มีสิทธิ์ในการเขียน

  1. chmod +w home/rk/Android/Sdk/tools/bin/sdkmanager

จากนั้นเรียกใช้คำสั่งด้านล่าง

  1. flutter doctor --android-licenses

มันจะประมวลผลใบอนุญาตโดยอัตโนมัติ


0

ทำตามขั้นตอนง่ายๆเหล่านี้

  1. ไปที่เครื่องมือจากนั้นเลือกตัวจัดการ SDK จากนั้นคลิกที่ Android SDK
  2. คลิกแท็บ SDK update sites
  3. เลือกช่องทำเครื่องหมายที่ระบุ https: //..sources ที่จะดึงโดยใช้ https: //
  4. คลิกใช้และตกลง
  5. ตอนนี้รีสตาร์ท android studio
  6. ไปที่เครื่องมือ SDK และเลือกช่องทำเครื่องหมายที่ระบุซ่อนแพ็คเกจที่ล้าสมัย
  7. รอประมาณหนึ่งนาทีเพื่อให้บรรจุภัณฑ์ปรากฏขึ้น
  8. จากนั้นเลือกแพ็กเกจที่เรียกว่า "android SDK tools (ล้าสมัย) แล้วกดตกลง
  9. ติดตั้งแพ็คเกจต่อไป
  10. หลังจากการติดตั้งรีสตาร์ท android studio และรีสตาร์ท cmd จากนั้นเรียกใช้ flutter doctor
  11. จะใช้เวลาสองสามนาทีและควรใช้งานได้

-1

คำเตือน : คำตอบนี้มีประโยชน์หากคุณมีปัญหากับตัวแปรสภาพแวดล้อม JAVA_HOME และทิศทางของสิ่งนั้น หากคุณไม่มีปัญหานี้คุณไม่ควรลองใช้วิธีนี้

หากคุณมีข้อผิดพลาดนี้และคุณได้ลองใช้ flutter doctor --android-licenses หรือ sdkmanager --licenses และคุณมีปัญหากับตัวแปรสภาพแวดล้อม JAVA_HOME ของคุณคุณต้องอ่านสิ่งนี้

ฉันมีมด MacOS Catalina ฉันสามารถแก้ไขปัญหานี้ได้สำเร็จด้วยขั้นตอนถัดไป:

  1. เปิดเทอร์มินัลของคุณ
  2. ประเภท: open -e .bash_profile (คุณควรเห็นตัวแปรสภาพแวดล้อมเกือบสองตัวแปร: flutter และ JAVA_HOME)
  3. บันทึกตัวแปรสภาวะแวดล้อม JAVA_HOME ที่เขียนในไฟล์ textEdit หากคุณต้องการและลบตัวแปรสภาวะแวดล้อม JAVA_HOME บันทึก bash_profile
  4. ไปที่เทอร์มินัลอีกครั้งและเรียกใช้ source $ HOME / .bash_profile
  5. ลองใช้ flutter doctor อีกครั้งและคุณจะไม่พบข้อผิดพลาดเดิมอีก

โปรดแจ้งให้เราทราบหากคุณมีข้อสงสัย


-1

นี่คือสิ่งที่ฉันทำเพื่อแก้ไขปัญหาของฉัน โปรดทราบว่าคุณไม่จำเป็นต้องถอนการติดตั้ง Android Studio / SDK เวอร์ชันเก่า Android Studio จะดูแลขณะที่คุณติดตั้งเวอร์ชันล่าสุด

  1. ดาวน์โหลดและติดตั้งAndroid Studioเวอร์ชันล่าสุด
  2. ทำตามคำแนะนำในบทช่วยสอนนี้
  3. เมื่อการติดตั้งเสร็จสมบูรณ์ให้เรียกใช้Flutter doctorและตรวจสอบปัญหาของคุณควรได้รับการแก้ไขแล้ว หากปัญหาได้รับการแก้ไขไม่จำเป็นต้องเรียกใช้คำสั่งflutter doctor --android-licenses
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.