Android Command line tools sdkmanager zawsze pokazuje: ostrzeżenie: nie można utworzyć ustawień

Używam nowych narzędzi wiersza poleceń Androida, ponieważ stare repozytorium sdk-tools Androida nie jest już dostępne. Więc zmieniłem gitlab-ci, aby załadować commandlintools. Ale kiedy próbuję go uruchomić, dostaję następujący błąd:

Warning: Could not create settings
java.lang.IllegalArgumentException
    at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.<init>(SdkManagerCliSettings.java:428)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:152)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:134)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:57)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)

Już próbowałem wykonać te polecenia ręcznie, ale dostaję ten sam błąd. Również jeśli uruchamiam sdkmanager --version, występuje ten sam błąd. Mój gitlab-ci wygląda tak:

image: openjdk:9-jdk

variables:
  ANDROID_COMPILE_SDK: "29"
  ANDROID_BUILD_TOOLS: "29.0.3"
  ANDROID_SDK_TOOLS:   "6200805"

before_script:
  - apt-get --quiet update --yes
  - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
  - wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip
  - unzip -d android-sdk-linux android-sdk.zip
  - echo y | android-sdk-linux/tools/bin/sdkmanager "platform-tools" "platforms;android-${ANDROID_COMPILE_SDK}" >/dev/null
  #- echo y | android-sdk-linux/tools/bin/sdkmanager "platform-tools" >/dev/null
  - echo y | android-sdk-linux/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}" >/dev/null
  - export ANDROID_HOME=$PWD/android-sdk-linux
  - export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/
  - chmod +x ./gradlew
  # temporarily disable checking for EPIPE error and use yes to accept all licenses
  - set +o pipefail
  - yes | android-sdk-linux/tools/bin/sdkmanager --licenses
  - set -o pipefail

stages:
  - build
  - test

lintDebug:
  stage: build
  script:
    - ./gradlew -Pci --console=plain :app:lintDebug -PbuildDir=lint

assembleDebug:
  stage: build
  script:
    - ./gradlew assembleDebug
  artifacts:
    paths:
    - app/build/outputs/

debugTests:
  stage: test
  script:
    - ./gradlew -Pci --console=plain :app:testDebug
Author: kaulex, 2020-02-27

18 answers

Zamiast przekazywać argument --sdk_root dla każdego pojedynczego wykonania polecenia, zagłębimy się głęboko w rzeczywistą przyczynę.

Począwszy od narzędzia wiersza poleceń Android SDK 1.0.0 (6200805), W przeciwieństwie do Android SDK 26.1.1 (4333796), hierarchia katalogów tools została zmieniona. Wcześniej był umieszczony bezpośrednio wewnątrz ANDROID_HOME (co jest przestarzałe, użyjemy terminu ANDROID_SDK_ROOT do reszty akapitu), teraz nadal jest nazwany tools (jedyna rzecz, którą otrzymasz po rozpakowanie pobranego pliku commandlinetools zip), ale inaczej, trzeba umieścić go w katalogu o nazwie cmdline-tools na własną rękę. Nazwa cmdline-tools pochodzi od nazwy pakietu, skąd można pobrać polecenie listing packages sdkmanager --list, którego wyjścia zawierają cmdline-tools;1.0 | 1.0 | Android SDK Command-line Tools.

Owinięcie katalogu tools wewnątrz katalogu cmdline-tools sprawi, że będzie on działał i pomoże Ci pozbyć się irytującego argumentu --sdk_root. Ale co z pozostałymi częściami?

To wszystko, co musisz zmienić. Niech ja wyjaśnię więcej.
  • król - sdkmanager mieszka wewnątrz cmdline-tools/tools/bin, lepiej ustawić PATH zmienną środowiskową
  • {[5] } nie powinno być ustawione jako ANDROID_SDK_ROOT. Ponieważ później, podczas aktualizacji Android SDK lub instalowania większej liczby pakietów, pozostałe pakiety zostaną umieszczone w ANDROID_SDK_ROOT, ale nie w cmdline-tools.
  • ostateczna, kompletna struktura katalogów ANDROID_SDK_ROOT powinna wyglądać jak poniżej, składa się z kilku podkatalogów: build-tools, cmdline-tools, emulator, licenses, patcher, platform-tools, platforms, system-images. Możesz łatwo zauważyć, że build-tools i cmdline-tools są rodzeństwem, wszystkie siedzą wewnątrz rodzica ANDROID_SDK_ROOT.

Podsumuję w prosty sposób:

  • Ustaw swoje preferowane ANDROID_SDK_ROOT (tak jak wcześniej)
  • Pobierz i rozpakuj plik zip commandlinetools do katalogu o nazwie cmdline-tools, który znajduje się w ANDROID_SDK_ROOT
  • dodaje Katalog $ANDROID_SDK_ROOT/cmdline-tools/tools/bin do zmiennej środowiskowej PATH, aby system wiedział, gdzie znaleźć sdkmanager

!!Aktualizacja!!

[51]}zachowanie zmieniło się ponownie od czasu kompilacji 6858069 (Android SDK Command-line Tools 3.0):
  • po rozpakowaniu pakietu, najlepszym katalogiem jaki otrzymasz jest cmdline-tools.
  • Zmień nazwę rozpakowanego katalogu z cmdline-tools na tools i umieść go pod $ANDROID_SDK_ROOT/cmdline-tools, więc teraz powinien wyglądać następująco: $ANDROID_SDK_ROOT/cmdline-tools/tools. A w środku powinieneś mieć: NOTICE.txt bin lib source.properties. W rzeczywistości zgodnie z oficjalnymi narzędziami wiersza poleceń doc , drzewo struktura powinna być android_sdk/cmdline-tools/version/bin/, ale sprawdziłem, użycie version lub tools nie robi tu żadnej różnicy.
  • dla Twojej zmiennej środowiskowej PATH, Polecam ustawić tak: PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin, ponieważ po aktualizacji później otrzymasz najnowszą sdkmanager umieszczoną pod $ANDROID_SDK_ROOT/cmdline-tools/latest/bin, umieszczenie jej z przodu spowoduje, że będzie miała wyższy priorytet.
 357
Author: Jing Li,
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-11-14 22:19:54

Wygląda na to, że jest to błąd związany ze sposobem, w jaki sdkmanager lokalizuje folder instalacyjny SDK.

Obejściem jest ustawienie flagi --sdk_root. Możesz przenieść deklarację ANDROID_HOME wyżej, a następnie użyć jej z kolejnymi poleceniami.

 - export ANDROID_HOME=$PWD/android-sdk-linux
 - yes | android-sdk-linux/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} --licenses
 - android-sdk-linux/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} "platform-tools" "platforms;android-${ANDROID_COMPILE_SDK}" >/dev/null

Przeniesiono również polecenie akceptacji licencji koca do pierwszego polecenia, aby wyczyścić echo y części.

Co dziwne, jeśli uruchomisz sdkmanager --sdk_root=${ANDROID_HOME} "tools" zaktualizuje narzędzia z 3.6.0 do 26.1.1 i sdkmanager nie ma już tego problemu. Ta aktualizacja wymaga czasu i przepustowości i nie jest to dokładnie konieczne z obejściem.

 109
Author: caller9,
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-05 13:27:39

Dla tych, którzy zmagali się z instalacją narzędzi wiersza poleceń Androida dla Appium na Windows 10 / x64, wykonaj następujące czynności:

  1. Pobierz najnowsze narzędzia wiersza poleceń z Androida, np. commandlinetools-win-6200805_latest.zip
  2. Rozpakuj pobrany plik
  3. Utwórz katalog do przechowywania narzędzi wiersza poleceń gdzieś na dysku, z następującą ścieżką: android / cmdline-tools/latest zasadniczo po rozpakowaniu tego narzędzia wiersza Cmd, po prostu zmień nazwę tools katalog do latest i upewnij się, że umieściłeś ten latest folder w Android/cmdline-tools gdzieś na dysku
  4. Utwórz ANDROID_HOME zmienną środowiskową dla katalogu, który przechowuje lokalizację katalogu cmdline tools: C:\YourLocationWhereYouStoreTheDirectory\android\cmdline-tools\latest
  5. Utwórz nowy wpis w zmiennej środowiskowej Path jako % ANDROID_HOME% \ bin
 41
Author: ArturS,
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-09 10:44:19

Menedżer SDK próbuje ustalić ścieżkę android-sdk na podstawie miejsca, w którym jest rozpakowany, bez użycia zmiennych środowiskowych, takich jak ANDROID_SDK_ROOT. Ale jest jeszcze gorzej, ponieważ ma twardy zakodowany folder nadrzędny o nazwie cmdline-tools i jeśli rozpakujesz commandlinetools wewnątrz folderu o innej nazwie, to nie działa, zmuszając nas do użycia parametru sdk_root do poprawnego podawania zmiennej wewnętrznej.

Mając to na uwadze, możemy użyć następującego podejścia do rozwiązania tego problemu.

I założymy, że używamy Ubuntu OS, więc jeśli nie, należy dostosować niektóre z tych instrukcji.

  1. Zainstaluj Android-SDK.

    sudo apt install android-sdk
    

    Po instalacji będziesz miał folder o nazwie android-sdk w /usr / lib

  2. Utwórz folder o nazwie cdmline-tools wewnątrz folderu android-sdk

    sudo mkdir /usr/lib/android-sdk/cmdline-tools
    
  3. Pobierz zip narzędzi wiersza poleceń Androida z tego miejsca ( https://developer.android.com/studio?hl=en-419#downloads )
  4. Rozpakuj właśnie pobrany plik w /usr / lib / android-sdk / cmdline-tools

    sudo unzip /path/for/commandlinetools-linux-6200805_latest.zip -d /usr/lib/android-sdk/cmdline-tools
    
  5. Go to you home dir and edit your .profil

    nano .profile
    
  6. Utwórz zmienną ANDROID_SDK_ROOT

    export ANDROID_SDK_ROOT=/usr/lib/android-sdk
    
  7. Umieść folder sdkmanager w ścieżce

    export PATH=$ANDROID_SDK_ROOT/cmdline-tools/tools/bin:$PATH
    
  8. Zapisz i zakończ
  9. Reload you profile

    . ~/.profile
    
  10. Run

    sdkmanager --version
    

W terminalu powinna być wydrukowana wersja.

 25
Author: awquadros,
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-04-11 00:59:46

Pobieranie nowych narzędzi cmdline ze strony programisty Androida wymaga przestrzegania następującej struktury katalogów.

 22
Author: ImperadorSid,
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 14:59:30

Mieszanie odpowiedzi od Jing Li i caller9, to jest mój skrypt:

variables:
  ANDROID_COMPILE_SDK: "29"
  ANDROID_BUILD_TOOLS: "29.0.3"
  ANDROID_SDK_TOOLS: "6200805"

before_script:
  - apt-get update --yes
  - apt-get install --yes wget tar unzip lib32stdc++6 lib32z1
  - export ANDROID_HOME=${PWD}android-home
  - install -d $ANDROID_HOME
  - wget --output-document=$ANDROID_HOME/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip
  - pushd $ANDROID_HOME
  - unzip -d cmdline-tools cmdline-tools.zip
  - popd
  - export PATH=$PATH:${ANDROID_HOME}/cmdline-tools/tools/bin/
  - sdkmanager --version
  - set +o pipefail
  - yes | sdkmanager --sdk_root=${ANDROID_HOME} --licenses
  - set -o pipefail
  - sdkmanager --sdk_root=${ANDROID_HOME} "platforms;android-${ANDROID_COMPILE_SDK}"
  - sdkmanager --sdk_root=${ANDROID_HOME} "platform-tools"
  - sdkmanager --sdk_root=${ANDROID_HOME} "build-tools;${ANDROID_BUILD_TOOLS}"
  - export PATH=$PATH:${ANDROID_HOME}/platform-tools/
  - chmod +x ./gradlew
[...]
 7
Author: Javier Sedano,
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-16 15:12:11

Mam ten sam problem, przyszedł tutaj przez Google. Według AndroidStudio Archiwum, dzisiaj było wydanie 4.1. To nie przypadek.

Ten całkowicie niepowiązany przewodnik zawiera hardlink do starszej wersji sdk-tools for linux. Możesz zmienić adres url na windows lub mac dla innych systemów operacyjnych. Na razie użyję tego jako poprawki.

(to miał być komentarz a nie Rozwiązanie)

 5
Author: jnnks,
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-28 18:30:20

Znalazłem rozwiązanie, aby użyć najnowszych narzędzi wiersza poleceń, wykonując następujące kroki:

1-wyodrębnienie narzędzi wiersza poleceń do folderu o takiej strukturze: np.: $HOME/Development/android/cmdline-tools/latest (ten folder musi zawierać lib, bin, uwaga.txt i źródło.właściwości )

2-Definiowanie ANDROID_HOME jako zmiennej środowiskowej:

ANDROID_HOME="$HOME/Development/android/cmdline-tools/latest"

3-ładowanie na ścieżka :

PATH="$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/lib:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools"
 5
Author: Kaio Cesar Koerich,
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-02 21:45:06

Chciałbym podzielić się swoim doświadczeniem.

Na początku staram się wyjaśnić dlaczego struktura katalogów musi wyglądać sposób pokazany w tej odpowiedzi - https://stackoverflow.com/a/60460681/1758733 . https://stackoverflow.com/users/668455/tristan poprosił kilka razy o wyjaśnienie, więc mam nadzieję, że wyjaśnię situtacja z następnym eksperymentem:

1. unpack cmdline-tools to any path, for example c:\Android\tools;
2. create a folder for SDK, let it be c:\Android\SDK;
3. install cmdline-tools (yes, we install cmdline-tools again =)):
    c:\Android\tools\bin\sdkmanager --sdk_root=c:\Android\SDK "cmdline-tools;latest"
4. at this moment we can examine c:\Android\SDK and locate
    the path c:\Android\SDK\cmdline-tools\latest. If we compare
    this folder with the previous version c:\Android\tools we find out
    that they are identical. The new installed c:\Android\SDK\cmdline-tools\latest\sdkmanager works
    without --sdk_root argument so we could initially unpack cmdline-tools
    to cmdline-tools\latest.

Można napotkać inny problem - utknął w ".android/repozytoria.cfg nie może być załadowany."

Inne kwestie i fakty:

1. QtCreator works with another sdkmanager that placed in SDK_ROOT/tools/bin
2. SDK_ROOT/tools/bin/sdkmanager works only with JDK 8
3. Java uses its own storage for certificates and it's not convinient usually.
    Thus one may want to use Windows certificate store. Unfortunately Grandle has the
    issue - https://stackoverflow.com/a/59056537 - so use the following:
    set JAVA_OPTS=-Djavax.net.ssl.trustStoreType=Windows-ROOT -Djavax.net.ssl.trustStore=NUL

Podsumowując można sformułować następujący przepis na rozwój z Qt:

1. download commandlinetools-win-6200805_latest.zip
2. extract cmdline-tools so there will be hierarchy
    SDKROOT
        - cmdline-tools
            - latest
                - bin
                    - sdkmanager.bat
                    - ...
                - lib
                - ...
3. install JDK 8. set JAVA_HOME=c:\path\to\java so that %JAVA_HOME%/bin/java.exe exists.
4. set JAVA_OPTS=-Djavax.net.ssl.trustStoreType=Windows-ROOT -Djavax.net.ssl.trustStore=NUL
5. NDK may be downloaded manually or installed with sdkmanager
6. install required components:
    SDKROOT\cmdline-tools\latest\bin\sdkmanager "tools" "build-tools;BUILD_TOOLS_VERSION" "platform-tools" "platforms;ANDROID_VERSION"
7. run qtcreator from console so JAVA_OPTS is taken into account (or set it globaly for windows user or even station)
8. tools -> options -> devices set paths to JDK 8, SDKROOT and NDK
 3
Author: gshep,
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-24 19:14:15

Mam ten sam błąd. Po wykonaniu wszystkich rozwiązań nie mogłem tego naprawić. Rozwiązałem ten problem czytając: https://forum.unity.com/threads/android-build-not-working.844969/

Uprość ODPOWIEDŹ:

  1. otwieranie menedżera sdkmanagera.bat by notepad++
  2. zmiana linii z

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

To "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %SDKMANAGER_OPTS% -classpath "%CLASSPATH%" com.android.sdklib.tool.sdkmanager.SdkManagerCli %CMD_LINE_ARGS% --sdk_root=%ANDROID_HOME%

(Uwaga: dodanie --sdk_root=%ANDROID_HOME% na końcu

 3
Author: Lilymeow,
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-05 13:10:58

Zdarzyło mi się to podczas pobierania samodzielnych narzędzi wiersza poleceń (commandlinetools-mac-6200805_latest) na nowym Macu.

Opierając się na wszystkich odpowiedziach tutaj, udało mi się to zrobić tak

# Define ANDROID_HOME, if not defined already
export ANDROID_HOME="~/Library/Android/sdk"

# Create the folder if missing
mkdir -p $ANDROID_HOME

# Let the tool know that it should use that SDK location. 
sdkmanager --list --sdk_root=$ANDROID_HOME

Dokumenty dla opcji --sdk_root mówią " użyj określonego katalogu głównego SDK zamiast zestawu SDK zawierającego to narzędzie ". To sprawiło, że pomyślałem, że pomimo wysyłki samodzielnej, narzędzie spodziewa się być częścią pakietu, w którym SDK jest zainstalowany, jak również.

 2
Author: mokagio,
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-04-08 05:09:20

Narzędzia Android SDK znajdują się teraz w następującej lokalizacji: "android_sdk / cmdline-tools / version / bin/";

Dlatego aby rozwiązać ten problem w Windows (to samo może być replikowane w innych systemach operacyjnych), wykonaj następujące czynności:

  1. W folderze android_sdk utwórz folder: cmdline-tools, A wewnątrz niego Utwórz inny folder: version rozpakuj / umieść wszystkie swoje pliki " /bin / lib NOTICE and sources.właściwości " plików wewnątrz tego folderu version.

  2. Ustaw ANDROID_HOME na Twój android_sdk folder.

  3. Dodaj do swojej ścieżki systemowej: android_sdk\cmdlineAndroidSDK\cmdline-tools\version\bin\

Podobnie umieść swoje Narzędzia Platformy Android SDK wewnątrz android_sdk/platform-tools/ i dodaj odpowiednie PATH do ENVIRONMENTAL VARIABLES Pod System Variables

 2
Author: shahab Uddin,
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-23 15:53:35

Ta strona z Dokumentacji Unity 2018 zawiera również dobre wyjaśnienie rozwiązania tego problemu, w tym takie punkty jak:

  1. Instalacja Android SDK bez Android Studio.
  2. Obejście dla "Warning: Could not create settings" I " java.lang.IllegalArgumentException "
  3. Trick dla Android Studio w wersji 3.6 lub nowszej.
  4. ostrzeżenie o Javie 9 lub nowszej, JDK musi być w wersji 8.

Https://docs.unity3d.com/2018.4/Documentation/Manual/android-sdksetup.html

 1
Author: Andrei Hryshanovich,
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-04-01 16:10:42

ODPOWIEDŹ by jing-li works for me Zamiast przekazywać argument --sdk_root dla każdego pojedynczego wykonania polecenia, zagłębimy się głęboko w rzeczywistą przyczynę.

Począwszy od Android SDK Command-line Tools 1.0.0 (6200805), w przeciwieństwie do Android SDK 26.1.1 (4333796), hierarchia katalogów narzędzi została zmieniona. Wcześniej był umieszczony bezpośrednio w ANDROID_HOME, teraz nadal jest nazywany tools (jedyną rzeczą, którą dostaniesz po rozpakowaniu pobranego pliku ZIP commandlinetools), ale inaczej, trzeba umieścić go w katalogu o nazwie cmdline-tools na własną rękę. Nazwa cmdline-tools pochodzi od nazwy pakietu, gdzie można uzyskać z listy packages polecenie sdkmanager --list, którego Wyniki zawierają cmdline-tools;1.0 | 1.0 | Android SDK narzędzia wiersza poleceń.

Owijanie katalogu tools wewnątrz katalogu cmdline-tools sprawi, że będzie on działał i pomoże Ci pozbyć się irytującego argumentu --sdk_root. Ale co z pozostałymi częściami?

 1
Author: ashiq,
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-18 06:31:15

Pierwszym wymogiem instalacji SDK (dowolnej metody) jest zainstalowanie Java & ustawienia JAVA_HOME ścieżka.

Następnie narzędzia wiersza poleceń SDK potrzebują ścieżki instalacji, bez której wyrzuca NullPointerException.
Aby to przezwyciężyć, wystarczy przejść ścieżkę, na której chcesz zainstalować SDK z argumentem "--sdk_root"
np. sdkmanager.bat "platform-tools ""platforms; android -" --sdk_root=

 0
Author: Ecos,
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-04-20 05:05:02

Jeśli używasz Linuksa i jednocześnie nie chcesz mieszać rąk ze złożonymi obejściami, polecam pobrać i użyć Snap version of sdkmanager.

Pamiętaj, aby użyć androidsdk zamiast sdkmanager w terminalu.

 0
Author: AriyaDey,
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-12 08:46:59

Podsumowując kilka przydatnych postów tutaj, a dla osób, które chcą szybkiego fragmentu, na przykład podłączyć Dockerfile, działa dla mnie następujący skrypt:

RUN mkdir -p /opt/android/cmdline-tools/latest \
    && cd /opt/android/cmdline-tools/latest \
    && wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip \
    && bsdtar --strip-components=1 -xvf commandlinetools-linux-6858069_latest.zip \
    && yes | bin/sdkmanager --licenses \
    && bin/sdkmanager "build-tools;29.0.2" "platforms;android-29" \
    && rm commandlinetools-linux-6858069_latest.zip

Wymaga tylko zainstalowania bsdtar (zwykle jest pakowany w popularne dystrybucje). Android platform/build tools Wersja 29 są zainstalowane, a Android sdk root zostanie umieszczony w /opt/android. Podczas gdy ta konfiguracja działa dla mnie bez ostrzeżeń, mam problem podczas ponownej instalacji pakietów już zainstalowanych lub możliwe instalowanie różnych wersji pakietów: koliduje z pakietami już obecnymi i tworzy fałszywe katalogi w katalogu głównym sdk, z -2, -3 przyrostki. Katalogi te są następnie ignorowane, a ostrzeżenia takie jak Observed package id 'emulator' in inconsistent location są drukowane, więc takie zachowanie nie jest zdecydowanie pożądane. Jeśli masz poprawkę, napisz ją w komentarzach lub, jeśli jesteś wystarczająco pewny, po prostu Edytuj skrypt z dokładną poprawką.

 0
Author: ceztko,
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-02-13 12:55:31

Android Studio jest niezbędne podczas instalacji narzędzi wiersza poleceń, nawet jeśli nie jest to edytor, z którego używasz aplikacji. Odznaczenie przestarzałej karty packages i pobranie narzędzi powinno to zrobić; powinno to usunąć problem z licencją i możesz wrócić do swojego ulubionego IDE (np. VS Code).

 -1
Author: user13328626,
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-26 18:29:10