Nie można uruchomić Menedżera sdkmanager --list z Java 9

Pobrałem i zainstalowałem:

  • JDK (jdk-9.0.1_osx-x64_bin.dmg) z Oracle tutaj
  • Android SDK (sdk-tools-darwin-3859397.zip) od Google tutaj .

Po skonfigurowaniu zmiennej PATH próbowałem uruchomić sdkmanager, które zastąpiło polecenie android do zarządzania komponentami SDK. Jednak nie udało się, jak pokazano tutaj:

$ sdkmanager --list
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.SdkManagerCli.main(SdkManagerCli.java:117)
    at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93)
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:185)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    ... 5 more

Oto Wersja Javy:

$ java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

Czy ktoś wie jak to naprawić bez powrotu do Javy 8?

Powiązane Pytania

Author: jww, 2017-11-07

26 answers

Z Pomocą tej odpowiedzi , udało mi się rozwiązać problem.

Zastosujemy poprawkę w sdkmanager. Jest to skrypt powłoki. Znajduje się w $android_sdk/tools/bin, Gdzie $android_sdk to miejsce, w którym rozpakowałeś Android SDK.

  1. Otwórz sdkmanager w swoim ulubionym edytorze.
  2. Zlokalizuj linię, która ustawia zmienną DEFAULT_JVM_OPTS. W moim egzemplarzu jest na linii 31:

    DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME"'
    
  3. Dołącz do zmiennej następujące opcje: -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee. proszę zwrócić uwagę za cytaty. w moim egzemplarzu linia staje się:

    DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
    
  4. Zapisz plik i zamknij Edytor.
  5. Uruchom polecenie ponownie.

Oto wynik:

$ sdkmanager --list
Installed packages:
  Path    | Version | Description              | Location
  ------- | ------- | -------                  | ------- 
  tools   | 26.0.1  | Android SDK Tools 26.0.1 | tools/  

Available Packages:
  Path                              | Version      | Description                      
  -------                           | -------      | -------                          
  add-ons;addon-g..._apis-google-15 | 3            | Google APIs                      
  add-ons;addon-g..._apis-google-16 | 4            | Google APIs                      
  add-ons;addon-g..._apis-google-17 | 4            | Google APIs                      
  add-ons;addon-g..._apis-google-18 | 4            | Google APIs                      
  add-ons;addon-g..._apis-google-19 | 20           | Google APIs                      
  add-ons;addon-g..._apis-google-21 | 1            | Google APIs                      
  add-ons;addon-g..._apis-google-22 | 1            | Google APIs                      
  add-ons;addon-g..._apis-google-23 | 1            | Google APIs                      
  add-ons;addon-g..._apis-google-24 | 1            | Google APIs
...
Hola! To działa!

-- Edycja: 2017-11-07 --

Należy pamiętać, że może być konieczne ponowne zastosowanie powyższej poprawki po uruchomieniu sdkmanager --update, ponieważ skrypt powłoki sdkmanager może zostać nadpisany, jeśli pakiet tools zostanie zaktualizowany.

Powiązane Odpowiedzi

 159
Author: Siu Ching Pong -Asuka Kenji-,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-07 06:31:55

Opcje sdkmanager można ustawić za pomocą SDKMANAGER_OPTS.

Przykład:

export SDKMANAGER_OPTS="--add-modules java.se.ee"
sdkmanager --list
 37
Author: bempa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-09 11:57:45

Zaakceptowana odpowiedź jest nieaktualna od lutego 2019. oto odpowiedź , która będzie działać do momentu migracji sdkmanager do nowszej wersji Javy. Ale do tego czasu nie będziesz miał już tego problemu.

OpenJDK 10 został superseeded przez OpenJDK 11 , który nie implementuje java.se.ee w ogóle . Oznacza to, że hack dodawania --add-modules java.se.ee nic już nie robi. Oznacza to również, że OpenJDK 10 zostanie automatycznie usunięty z systemu i zastąpiony przez OpenJDK 11 przy następnej aktualizacji, jeśli aktualizacje są poprawnie skonfigurowane.

Modyfikuj sdkmanager aby używać Javy 8 ustawiając JAVA_HOME wewnątrz sdkmanager do instalacji Java 8. Domyślnie jest to ~/Android/Sdk/tools/bin/sdkmanager.

# Add default JVM options here. You can also use JAVA_OPTS and SDKMANAGER_OPTS to pass JVM options $
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions'
@rem Add default JVM options here. You can also use JAVA_OPTS and SDKMANAGER_OPTS to pass JVM options to this script.
set JAVA_HOME="C:\ProgramData\scoop\apps\android-studio\current\jre"
set DEFAULT_JVM_OPTS="-Dcom.android.sdklib.toolsdir=%~dp0\.."

W ten sposób możesz nadal używać zdrowej i utrzymywanej wersji Javy w systemie, jednocześnie używając sdkmanager.

# Java
export JAVA_HOME=/usr/lib/jvm/default-java

A teraz mam kilka rurociągów do naprawy.

 25
Author: NatoBoram,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-30 20:33:06

Gdy java 11 jest w systemie, dostarczone rozwiązania nie są poprawne.

This -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee or--add-modules java.xml.bind nie działa z Java 11 na Mac OS.

Z tego powodu musisz obniżyć wersję Javy do wersji 8 stąd: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Lista zainstalowanych wersji Javy

/usr/libexec/java_home -V

Java 11

export JAVA_HOME=$(/usr/libexec/java_home -v 11)

Java 1.8

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

Następnie przejdź do

cd ~/Library/Android/sdk/tools/bin

I

./sdkmanager --licenses
 23
Author: thodwris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-01 15:13:03

Dla Windows, jeśli nic nie działa, spróbuj tego:

  • Otwórz sdkmanager.bat z notatnikiem.

  • Znajdź następujący wiersz:

    %JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %SDKMANAGER_OPTS%

  • Dodaj --add-modules java.xml.bind

Zmodyfikowana linia powinna wyglądać tak:

%JAVA_EXE%" %DEFAULT_JVM_OPTS% --add-modules java.xml.bind %JAVA_OPTS% %SDKMANAGER_OPTS%

 13
Author: Sagar Khatri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-15 05:29:37

Aktualizacja 2019-10:

Jak stwierdzono w issue tracker, Google pracuje nad nowym wydaniem narzędzi SDK, które działa na obecnych JVMs (9+)!

Możesz pobrać i używać nowych narzędzi Android SDK wiersza poleceń (1.0.0) wewnątrz Android Studio lub ręcznie pobierając je z serwerów Google:

Dla najnowszych wersji sprawdź adresy URL wewnątrz repozytorium .xml .

Jeśli ręcznie rozpakujesz narzędzia wiersza poleceń, zadbaj o umieszczenie ich w podfolderze wewnątrz $ANDROID_HOME (np. $ANDROID_HOME/cmdline-tools/...).

 12
Author: G00fY,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-22 17:26:44

Jak czytamy w poprzednich komentarzach, ten błąd występuje, ponieważ aktualna wersja SDK jest niezgodna z najnowszymi wersjami Javy: 9 i 10.

Aby to rozwiązać, możesz obniżyć wersję Javy do Java 8 lub jako obejście możesz wyeksportować następującą opcję na swoim terminalu:

Linux:

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

Windows :

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

Jeśli to nie zadziała spróbuj wyeksportować java.xml.bind zamiast tego.

Linux:

export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.xml.bind'

Windows :

set JAVA_OPTS=-XX:+IgnoreUnrecognizedVMOptions --add-modules java.xml.bind'

To rozwiąże ten błąd dla sdkmanager

I aby zapisać go na stałe, możesz wyeksportować JAVA_OPTS w swoim pliku profilu na Linuksie (.zshrc, .bashrc i itp.) lub dodać ją jako zmienną środowiskową na stałe w systemie Windows.


Ps. to nie działa dla Java 11/11+, która nie ma modułów Java EE. Dla tej opcji jest dobrym pomysłem, obniżyć wersję Java lub czekać na Flutter update .

Ref: JDK 11: Koniec drogi dla modułów Java EE

 10
Author: valdeci,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-23 16:57:26

Jak niektórzy już wcześniej wspominali, może to być prostszy problem związany z tym, że jedna instalacja Javy ma pierwszeństwo przed drugą.

W moim przypadku była to java 8, która została przyćmiona przez domyślną nowszą Javę.

Zainstalowałem Javę 8:

sudo apt-get install openjdk-8-jdk

Następnie zaktualizowałem zainstalowaną Javę jako nową domyślną:

sudo update-alternatives --config java

W którym wybrałem numer ID Javy 8.

Po wykonaniu tych (dość prostych) kroków, mogę po prostu uruchomić sdkmanager bez błąd.

Mam nadzieję, że to komuś pomoże!
 8
Author: Steve Trotta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-14 20:59:01

Narzędzia Androida są nadal niekompatybilne z JDK 9 lub 10. Musisz zainstalować JDK 8 lub, jeśli potrzebujesz wielu wersji Java upewnij się, że systemowa Strona główna Java wskazuje na JDK 8.

Więcej szczegółów tutaj: Jak skonfigurować Unity 2017.4, aby kierować Android i uniknąć błędów kompilacji na OSX?

 7
Author: German,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-28 22:02:25

Miałem trudności z wymyśleniem tego rozwiązania po prostu dodając działający sdkmanager.bat

@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem  sdkmanager startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%..

@rem Add default JVM options here. You can also use JAVA_OPTS and SDKMANAGER_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Dcom.android.sdklib.toolsdir=%~dp0\.."


@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto init

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:init
@rem Get command-line arguments, handling Windows variants

if not "%OS%" == "Windows_NT" goto win9xME_args

:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2

:win9xME_args_slurp
if "x%~1" == "x" goto execute

set CMD_LINE_ARGS=%*

:execute
@rem Setup the command line

set CLASSPATH=%APP_HOME%\lib\sdklib-25.3.1.jar;%APP_HOME%\lib\layoutlib-api-25.3.1.jar;%APP_HOME%\lib\dvlib-25.3.1.jar;%APP_HOME%\lib\repository-25.3.1.jar;%APP_HOME%\lib\gson-2.2.4.jar;%APP_HOME%\lib\commons-compress-1.8.1.jar;%APP_HOME%\lib\httpclient-4.1.1.jar;%APP_HOME%\lib\httpmime-4.1.jar;%APP_HOME%\lib\common-25.3.1.jar;%APP_HOME%\lib\kxml2-2.3.0.jar;%APP_HOME%\lib\annotations-25.3.1.jar;%APP_HOME%\lib\annotations-12.0.jar;%APP_HOME%\lib\jimfs-1.1.jar;%APP_HOME%\lib\httpcore-4.1.jar;%APP_HOME%\lib\commons-logging-1.1.1.jar;%APP_HOME%\lib\commons-codec-1.4.jar;%APP_HOME%\lib\guava-18.0.jar

@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.SdkManagerCli %CMD_LINE_ARGS%

:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd

:fail
rem Set variable SDKMANAGER_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if  not "" == "%SDKMANAGER_EXIT_CONSOLE%" exit 1
exit /b 1

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega
 5
Author: victorjpe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-05 09:10:10

Udało mi się rozwiązać problem za pomocą edytowanego menedżera sdkmanagera.plik bat wymuszając użycie Javy osadzonej wewnątrz samego studia Android, które jak przypuszczam używa OpenJDK 8. Oto edytowany sdkmanager, którego użyłem:

@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem  sdkmanager startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%..

@rem Add default JVM options here. You can also use JAVA_OPTS and SDKMANAGER_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Dcom.android.sdklib.toolsdir=%~dp0\.."

@rem find Java from Android Studio
@rem Find java.exe
if defined ANDROID_STUDIO_JAVA_HOME goto findJavaFromAndroidStudioJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init

goto findJavaNormally

:findJavaFromAndroidStudioJavaHome
set JAVA_HOME=%ANDROID_STUDIO_JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto init

goto findJavaNormally




@rem java from java home
@rem Find java.exe
:findJavaNormally
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init

goto javaError

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto init

goto javaDirectoryError



:javaError
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:javaDirectoryError
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail


:init
@rem Get command-line arguments, handling Windows variants

if not "%OS%" == "Windows_NT" goto win9xME_args

:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2

:win9xME_args_slurp
if "x%~1" == "x" goto execute

set CMD_LINE_ARGS=%*

:execute
@rem Setup the command line

set 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

@rem Execute sdkmanager
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %SDKMANAGER_OPTS%  -classpath "%CLASSPATH%" com.android.sdklib.tool.sdkmanager.SdkManagerCli %CMD_LINE_ARGS%

:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd

:fail
rem Set variable SDKMANAGER_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if  not "" == "%SDKMANAGER_EXIT_CONSOLE%" exit 1
exit /b 1

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega

Tutaj użyłem zmiennej środowiskowej ANDROID_STUDIO_JAVA_HOME, która faktycznie wskazuje na JRE osadzone w android studio np: ../ android_studio / jre

To również ma alternatywę dla JAVA_HOME, jeśli ANDROID_STUDIO_JAVA_HOME nie jest ustawiony.

 4
Author: Jemsheer K D,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-26 10:22:32

Tak zrobiłem w Ubuntu 18.04 (zrobi to każdy Linux):

$ sudo apt-get install openjdk-8-jdk

$ sudo update-alternatives --config java
There are 2 choices for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                          Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac   1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac   1111      manual mode
* 2            /usr/lib/jvm/java-8-openjdk-amd64/bin/javac    1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 2

$ export JAVA_HOME=$(/usr/lib/jvm/java-1.8.0-openjdk-amd64)
 3
Author: Vahid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-19 18:20:28

Krótki dodatek do powyższego dla openJDK 11 z narzędziami android sdk przed aktualizacją do najnowszej wersji.

Powyższe rozwiązania nie zadziałały dla mnie

set DEFAULT_JVM_OPTS="-Dcom.android.sdklib.toolsdir=%~dp0\.."

Aby to działało, zainstalowałem jaxb-ri (reference implementation) z maven repo.

Informacja została podana https://github.com/javaee/jaxb-v2 i linki do https://repo1.maven.org/maven2/com/sun/xml/bind/jaxb-ri/2.3.2/jaxb-ri-2.3.2.zip
Ten plik do pobrania zawiera samodzielna implementacja runtime w folderze mod.

Skopiowałem mod-Folder do $android_sdk \ tools \ lib\ i dodałem do zmiennej classpath:

; % APP_HOME% \ lib \ mod\Yakarta.xml.bind-api.jar; % APP_HOME% \ lib\mod\aktywacja-api.jar; % APP_HOME% \ lib \ mod \ JAXB-runtime.jar;%APP_HOME%\lib\mod\istack-commons-runtime.jar;

W końcu wygląda to tak:

set 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;%APP_HOME%\lib\mod\jakarta.xml.bind-api.jar;%APP_HOME%\lib\mod\jakarta.activation-api.jar;%APP_HOME%\lib\mod\jaxb-runtime.jar;%APP_HOME%\lib\mod\istack-commons-runtime.jar;

Może przegapiłem lib z powodu kilku drobnych błędów pojawiających się. Ale sdkmanager.bat --update or -- lista już działa.

 2
Author: OpenGL Beginner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-03 23:31:57

To jest odpowiedź, aby to działało dla Java 11 i wyżej, ponieważ całe interfejsy API JAXB zostały usunięte.

Pobierz XML Binding , a konkretnie ten plik zip . Potrzebne są tylko 3 pliki w folderze mod tj.aktywacja.jar, Dżakarta.xml.bind-api.jar i Dżakarta.xml.bind-api.słoik i możesz wyrzucić resztę.

Przenieś te pliki do folderu APP_HOME / lib. W tym celu utworzyłem podfolder jaxb. Więc na moim systemie macOS to na: $HOME/Library/Android/sdk/tools/lib / jaxb

Teraz otwórz sdkmanager używając swojego ulubionego edytora tekstu i pod CLASSPATH= Dodaj następujący tekst na początku:

$APP_HOME/lib/jaxb/jakarta.activation.jar:$APP_HOME/lib/jaxb/jakarta.xml.bind-api.jar:$APP_HOME/lib/jaxb/jaxb-impl.jar

Więc skończyło się tak:

CLASSPATH=$APP_HOME/lib/jaxb/jakarta.activation.jar:$APP_HOME/lib/jaxb/jakarta.xml.bind-api.jar:$APP_HOME/lib/jaxb/jaxb-impl.jar:$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
I to wszystko, powinno rozwiązać problem. Zrobiłem te kroki, bo sprawiało mi problemy. I to to naprawiło.
 2
Author: Saifur Rahman Mohsin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-23 21:54:19

(WINDOWS)

Jeśli zainstalowałeś już Android Studio przejdź do File >> Project Structure... >> Lokalizacja SDK.

Idź do tej lokalizacji + \cmdline-tools\latest\bin Skopiuj ścieżkę do Environment Variables

Jest w porządku używać narzędzia wiersza poleceń.

 2
Author: niek tuytel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-10-16 23:04:28

Jedynym działającym rozwiązaniem dla mnie jest użycie Javy dostarczonej wraz z Android studio.

Ustaw JAVA_HOME na /Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home

W .bashrc

set JAVA_HOME="/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home"

Jeśli używasz fish shel, umieść to w ~/.config/fish/config.fish

set -gx JAVA_HOME /Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home

(to jest dla mac, ale jestem pewien, że powinno działać z Linuksem i windows, ustawiając poprawną ścieżkę)

 1
Author: RameshVel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-26 07:45:15

JDK 13.0.1 , Android SDK 29, Windows 10

W zasadzie próbowałem wszystkiego, ale najskuteczniejszym i tylko 1 rozwiązaniem, które zadziałało dla mnie, było obniżenie wersji do jdk 1.8. I dont why, it is early 2020 and have to downgrade to 1 year old JDK version against latest flutter version. Może problem jest w wersji windows, ponieważ jdk 13.0.1 działał u mnie na macOS 10.15.2. Mam nadzieję, że to rozwiązanie zadziała.

Link do pobrania (JDK 1.8.0): https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 1
Author: Kedar Sukerkar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-13 18:41:58

Definiowanie katalogów domowych różnych wersji JDK w Twoim .bashrc lub .ZSRC:

export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_14_HOME=$(/usr/libexec/java_home -v14)

Przede wszystkim użyj JDK w wersji 8. Umieść tę linię na górze pliku sdkmanager:

export JAVA_HOME=$JAVA_8_HOME

Przełącz z powrotem na wersję JDK 14. Umieść tę linię na dole sdkmanager pliku:

export JAVA_HOME=$JAVA_14_HOME
 1
Author: Gabor G,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-17 05:56:50

Najwyraźniej jeśli używasz "commandlinetools" w wersji większej niż 3.6.0, możesz użyć JDK11+ do zainstalowania komponentów Android SDK.

Są dostępne tutaj: https://developer.android.com/studio#command-tools

Oficjalny tracker problemu mówiący, że został naprawiony: https://issuetracker.google.com/issues/122210344#comment11

 1
Author: Mike Hardy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-05 15:16:33

Https://adoptopenjdk.net obecnie obsługuje wszystkie dystrybucje JDK począwszy od wersji 8. Na przykład https://adoptopenjdk.net/releases.html#x64_win

Oto przykład jak udało mi się użyć JDK w wersji 8 z sdkmanagerem i wiele więcej: https://travis-ci.com/mmcc007/screenshots/builds/109365628

Dla JDK 9 (i myślę, że 10 i prawdopodobnie 11, ale nie 12 i więcej), aby sdkmanager działał, powinno działać:

export SDKMANAGER_OPTS="--add-modules java.se.ee"
sdkmanager --list
 0
Author: mmccabe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-24 01:25:55

Innym rozwiązaniem tego błędu jest sprawdzenie wersji Javy, może uda Ci się go rozwiązać ściągając ten jdk oracle-jdk-8, to był mój błąd: P

 0
Author: Pedro Molina,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-26 19:38:27

Wystarczy zainstalować pliki jaxb har i dołączyć do classpath. działa to w Javie od 11 do 12 lat.

Do tych, którzy szukają poprawki zrobiłem trochę gist w github nadzieję, że ta pomoc. i linki są również.

Https://gist.github.com/Try-Parser/b7106d941cc9b1c9e7b4c7443a7c3540

 0
Author: HuntsMan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-13 06:27:08

Pobieram Java 8 SDK

  1. unistall java sdk previuse
  2. Zamknij android studio
  3. install java 8
  4. run - > cmd-> flutter doctor --install -licenses i po
flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.12.13+hotfix.9, on Microsoft Windows [Version 10.0.19041.388], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[√] Android Studio (version 4.0)
[√] VS Code (version 1.47.3)
[!] Connected device
    ! No devices available

! Doctor found issues in 1 category
display  and finish
 0
Author: ismaelmazrooei,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-07 01:08:17

Jeśli używasz flutter, Uruchom to polecenie flutter doctor --android-licenses

 0
Author: Amine Mostefaoui,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-26 18:46:38

Dla użytkowników komputerów mac, rozwiązałem podobny problem, modyfikując mój plik zshrc i dodając następujący (chociaż twój java_home może być skonfigurowany Inaczej):

export JAVA_HOME=$(/usr/libexec/java_home)
export ANDROID_HOME=/Users/YOURUSER/Library/Android/sdk
export PATH=$PATH:/Users/YOURUSER/Library/Android/sdk/tools
export PATH=$PATH:%ANDROID_HOME%\tools
export PATH=$PATH:/Users/YOURUSER/Library/Android/sdk
 0
Author: BillCampbell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-04 19:53:30

To bardzo proste, wystarczy wyeksportować zmienną środowiskową JAVA_HOME, ustawioną na ścieżkę instalacji JDK.

Zainstalowałem Javę ręcznie na Ubuntu, więc dla mnie wygląda to tak:

export JAVA_HOME="$HOME/pkg-src/jdk1.8.0_251"

I upewnij się, że istnieje również na twojej drodze...

export PATH="$PATH:$JAVA_HOME"
 -2
Author: brianarpie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-29 17:12:54