AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung [Fmx, Android] Einstellen SDK/NDK Version (Berlin 10.1.2) per AndroidStudio 2.3.3
Thema durchsuchen
Ansicht
Themen-Optionen

[Fmx, Android] Einstellen SDK/NDK Version (Berlin 10.1.2) per AndroidStudio 2.3.3

Ein Thema von Rollo62 · begonnen am 9. Jan 2018
Antwort Antwort
Rollo62

Registriert seit: 15. Mär 2007
4.094 Beiträge
 
Delphi 12 Athens
 
#1

[Fmx, Android] Einstellen SDK/NDK Version (Berlin 10.1.2) per AndroidStudio 2.3.3

  Alt 9. Jan 2018, 10:29
Hallo zusammen,

ich versuche noch Android unter Rx10.2.2 Tokyo ans Laufen zu bekommen, aber bisher funktioniert nur
Rx10.1.2 Berlin zuverlässig.

Mittlerweile habe ich Einiges ausprobiert, auch jungfäuliche Systeme und Installation, das Ergebnis bleibt gleich:
Berlin geht noch, Tokyo nicht mehr.

Zumindest gehen in dem letzten Rx10.2.2 Tokyo Update wieder die meisten Orginal-Demos von Firemonkey.

Ich versuche AndroidStudio 2.3.3 zum Verwalten der SDKs zu verwenden, leider lassen sich dessen Pfade nicht immer mit dem SDKManager verwalten.

Was ich bis jetzt herausgefunden habe ist Folgendes:
  1. Ab ca. Android API 23 scheint es Einige breaking changes zu geben, da haben auch andere Buildsysteme mit zu
    kämpfen.
    Deshalb würde ich auf der (bisher) sicheren Seite API 23 bleiben, und mich langsam an höhere APIs herantasten.
  2. Es scheint das nur die 32-Bit Android-Builds für RadStudio funktionieren (klar 32-Bit BDS und 32-Bit Android DLLs)
    Man sollte checken das hier wirklich die richtigen SDKs installiert und benutzt werden
  3. Leider scheint der FMX SDKManager nicht sehr gut mit dem AndroidStudio SDKManager zusammenzuarbeiten.
    Ein Grund könnte Folgendes sein, das RadStudio die SDKs an bestimmten Positionen erwartet
    c:\Users\Public\Documents\Embarcadero\Studio\18.0\ CatalogRepository\
    c:\Users\Public\Documents\Embarcadero\Studio\18.0\ PlatformSDKs\
    Die Pfadeinträge in der Docu sind vielleicht nicht als Beispiel, sondern als MUSS zu verstehen.

    Anscheinend legt RadStudio bei mir nur maximal ein SDK bei der Installation an, wenn ich die externen
    AndroidStudio Pfade angebe.
    Das funktioniert dann auch, aber weitere SDKs hinzufügen funktioniert nicht, weil RadStudio diese nicht
    automatisch erkennt, und auch nicht manuell zulässt.
    (Das funktionierte glaube ich bei ältenen Versionen noch, bei Berlin/Tokyo aber nicht mehr).

  4. Ich möchte trotzdem neuere SDKs ausprobieren und eintragen können, deshalb versuche ich das dem RadStudio unterzuschieben.
    # RadStudio beenden
    # AndroidStudio starten, und mit sessen Tools\SDKManager die neuen SDKs verwalten und installieren/updaten
    # regedit öffnen, und den Pfad der RadStudio Platform-SDKs suchen
    HKEY_CURRENT_USER\Software\Embarcadero\BDS\18.0\Pl atformSDKs\
    # Darunter sollte zumindest ein SDK zu sehen sein sein das sich kompilieren lässt, z.B.
    HKEY_CURRENT_USER\Software\Embarcadero\BDS\18.0\Pl atformSDKs\AndroidSDK26.1.1_32bit.sdk
    # Diesen regedit key exportieren, und mit Notepad bearbeiten, so das zumindest ein neuer Name/Schlüssel da ist
    # regedit wieder laden, und der neue Schlüssel sollte unter PlatformSDKs stehen, z.b.
    HKEY_CURRENT_USER\Software\Embarcadero\BDS\18.0\Pl atformSDKs\AndroidSDK27.x.x_32bit.sdk
    # RadStudio öffnen, und SDKManager öffnen, jetzt sollten beide Einträge sichtbar sein
    # Mit SDKManager die Pfade auf das neue SDK umbiegen und korrigieren
    (ALLE kontrollieren, auch die welche mehrere Einträge haben)
    # Jetzt sollten zwei SDKs Eintrage im RadStudio verfügbar, auswählbar und kompilierbar sein.

    Die Einträge in der Registry sehen bei mir z.B. so aus
    Zitat:
    [HKEY_CURRENT_USER\Software\Embarcadero\BDS\18.0\Pl atformSDKs\AndroidSDK26.1.1_32bit.sdk]
    "SDKName"="AndroidSDK26.1.1_32bit.sdk"
    "SDKDisplayName"="Android SDK 26.1.1 32bit"
    "PlatformName"="Android"
    "Version"="26.1.1"
    "SystemRoot"="C:\\Users\\reg_w\\AppData\\Local\\An droid\\Sdk"
    "NDKBasePath"="C:\\Users\\reg_w\\AppData\\Local\\A ndroid\\sdk\\ndk-bundle"
    "NDKArmLinuxAndroidFile"="C:\\Users\\reg_w\\AppDat a\\Local\\Android\\sdk\\ndk-bundle\\toolchains\\arm-linux-androideabi-4.9\\prebuilt\\windows-x86_64\\bin\\arm-linux-androideabi-ld.exe"
    "NDKArmLinuxAndroidStripFile"="C:\\Users\\reg_w\\A ppData\\Local\\Android\\sdk\\ndk-bundle\\toolchains\\arm-linux-androideabi-4.9\\prebuilt\\windows-x86_64\\bin\\arm-linux-androideabi-strip.exe"
    "NDKApiPath"="C:\\Users\\reg_w\\AppData\\Local\\An droid\\sdk\\ndk-bundle\\platforms\\android-23"
    "NDKGdbServerPath"="C:\\Users\\reg_w\\AppData\\Loc al\\Android\\sdk\\ndk-bundle\\prebuilt\\android-arm\\gdbserver\\gdbserver"
    "SDKZipAlignPath"="C:\\Users\\reg_w\\AppData\\Loca l\\Android\\sdk\\build-tools\\25.0.3\\zipalign.exe"
    "SDKAndroidPath"="C:\\Users\\reg_w\\AppData\\Local \\Android\\Sdk\\tools\\Android.bat"
    "SDKAdbPath"="C:\\Users\\reg_w\\AppData\\Local\\An droid\\sdk\\platform-tools\\adb.exe"
    "SDKAaptPath"="C:\\Users\\reg_w\\AppData\\Local\\A ndroid\\sdk\\build-tools\\25.0.3\\aapt.exe"
    "SDKApiLevelPath"="C:\\Users\\reg_w\\AppData\\Loca l\\Android\\sdk\\platforms\\android-23"
    "JDKPath"="C:\\Program Files\\Java\\jdk1.8.0_60"
    "JDKJarsignerPath"="C:\\Program Files\\Java\\jdk1.8.0_60\\bin\\jarsigner.exe"
    "JDKKeyToolPath"="C:\\Program Files\\Java\\jdk1.8.0_60\\bin\\keytool.exe"
    "DelphiNDKLibraryPath"="C:\\Users\\reg_w\\AppData\ \Local\\Android\\sdk\\ndk-bundle\\platforms\\android-23\\arch-arm\\usr\\lib;C:\\Users\\reg_w\\AppData\\Local\\An droid\\sdk\\ndk-bundle\\sources\\cxx-stl\\gnu-libstdc++\\4.9\\libs\\armeabi-v7a"
    "CBuilderNDKLibraryPath"="C:\\Users\\reg_w\\AppDat a\\Local\\Android\\sdk\\ndk-bundle\\platforms\\android-23\\arch-arm\\usr\\lib;C:\\Users\\reg_w\\AppData\\Local\\An droid\\sdk\\ndk-bundle\\platforms\\android-23"
  5. Natürlich könnten neuere SDKs Probleme beim Kompilieren oder Ausführen machen, weil z.B. die RadStudio Libraries
    darauf noch nicht eingestellt sind.
    Deshalb empfiehlt ja wohl Embarcadero nur ein spezielles SDK.
    Trotzdem glaube ich es kann sich lohnen Updates und evtl. Fehlerbereinigungen zu checken.

Ich versuche noch zu checken wie es sich mit der Kompilierung einer eigen classes.dex verhält, ob sich z.B.
neuere SDKS mit einem Update der classes.dex besser vertragen, aber natürlich stehen dazu nur die älteren Libraries des RadStudio zur Verfügung.
Das Ganze ist leider nicht OpenSource, also ist man auf Updates/Hotfixes angewiesen.

Oder besteht eine Möglichkeit auch diese Libraries (ala libnative-activity.so, libsqlite.a, etc.) evtl. neu erzeugen zu lassen ?
Ich denke wohl nicht, weil dazu die Sourcen fehlen, habe ich aber noch nicht 100% gecheckt ob da nicht doch etwas versteckt ist.
Eigentlich möchte ich gar nicht so tief in diese Themen reinsteigen, aber 10.1.2 Berlin ist die letzte sinnvoll nutzbare Android-Version bei mir, und auch da funktionieren z.B. nicht immer die Sensoren (Gyro/Acceleration, etc.).
Je nach Konfiguration: Mal gehts, mal nicht.
Ich hoffe das man mit dem Finetuning der Libraries vielleicht etwas mehr herauskitzeln kann, und am Besten doch noch Tokyo sinnvoll nutzen kann.

Wer hat von Euch Erfahrung damit, und welche Workflows benutzt Ihr um die SDKs upzudaten ?
Vielleihct raten mir auch Alle davon ab so etwas zu tun. und nur die "Emba zertifizierten" zu benutzen

Rollo
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz