Jump to content
TazKy

Alexandria 11.3 and Android 13 (part 2)

Recommended Posts

Sometime back I asked (in this forum) if Alexandria 11.2 supported Android 13.  I was told yes.  I was skeptical but since 11.3 was going to come out soon I would wait.

 

Today, I installed 11.3.  To my horror Android SDK 33 was not installed.

 

I looked into Embarcadero's DocWiki and found this (https://docwiki.embarcadero.com/PlatformStatus/en/Main_Page#cite_note-11.3-1 )

Windows Server 2022, Ubuntu 22, Android 13, iOS 16, and macOS Ventura support require RAD Studio 11.3.

 

So with that confirmation I knew I had an uphill battle because anytime I tried to build the most basic Android project (blank screen - no thrills), run it in debug mode and try to launch it to my Android 13 device it died and responded with this message [INSTALL_FAILED_OLDER_SDK].  It could not be any plainer than that.  My Android 13 device needed SDK 33.

 

As a side note, I looked at some of the comments including changing the targetSdkVersion in the AndroidManifest.template.xml to 33.  Same message occurred.

 

When I installed the first Alexandria 11 version and noticed that there was no SDK Manager, an alarm went off and I said this is bad.

 

Where is SDK 33?  Are we suppose to get it from Android Studio?  Or is there a weird work around for this problem?

Edited by TazKy

Share this post


Link to post

When they say they support Android 13, I believe they mean that you can build an application for that version. However, that does not mean they actually have the latest SDK. You can build apps for Android 13 with older SDK versions, such as the one that Embarcadero provides with RAD studio installation, Android SDK 25.2.5. I highly doubt they'll upgrade their SDK anytime soon as that means they'll have to update all the java interfaces written in Delphi (Androidapi units) and add new ones. That's too much work for them, considering they focus on sales rather than fixing and updating the current code. After all, someone must catch the ChatGPT train! 🤮

Share this post


Link to post

I have tested it today and it works. Delphi 11.3, Samsung A52s with Android 13.

However, debugging works only for Android 32 bit.

Android 64-bit debugging is now working in RAD 11.3.

Edited by Jirka52

Share this post


Link to post
11 hours ago, TazKy said:

Where is SDK 33?  Are we suppose to get it from Android Studio?  Or is there a weird work around for this problem?

I am using SDK from Android Studio, so I cannot comment on whether SDK 33 is installed with 11.3. 

 

You can use Android Studio to update the SDK, but you can also use avdmanager.bat and sdkmanager.bat tools in the <ANDROID-SDK-FOLDER-PATH>\cmdline-tools\bin folder. I am assuming that your referral of missing SDK Manager was about SDKManager.exe that was previously available. See: https://quality.embarcadero.com/browse/RSP-34730

 

This change is because support for new Android versions required newer Android tools version which no longer ships with SDKManager.exe because Google integrated all those within Android Studio and removed standalone version. See: https://issuetracker.google.com/issues/197818591?pli=1

 

Share this post


Link to post
5 hours ago, havrlisan said:

Android SDK 25.2.5. I highly doubt they'll upgrade their SDK anytime soon as that means they'll have to update all the java interfaces written in Delphi (Androidapi units) and add new ones.

This version  number is not SDK version it is tools version. SDK version for supporting Android API levels is set in SDK panel in Options dialog under "SDK API level location". You can find which SDK platforms you have installed in SDK\platforms folder. Fro API 33 there should be android-33 folder inside.

 

Also Java interfaces don't change with each API version and they are pretty stable, so they don't need to be constantly updated. Occasionally, when new API has some additional features or some interfaces are changed Delphi Java interfaces will be changed accordingly. When Embarcadero says they support some API level, that means they actually do support that API level.

Share this post


Link to post

Hello Daliga,

 

Thanks for your replies.  Danny Wind has on his website an article posted 15 September 2022 call "Android SDK for Delphi 11.2 Alexandria" where he talks about installing build-tools, platform-tools and platform.  This was for 32.

 

sdkmanager "build-tools;32.0.0"

sdkmanager "platform-tools"

sdkmanager "platforms;android-32"

 

I am assuming that this could work for getting 33?  Since I have never had to do this before, I do not want to proceed unless it is totally safe.  If this works, is this all that is needed?  Thanks.

Share this post


Link to post

you can update your SDK/NDK just using command-line in your setup:  SDKManager.bat is in "...\cmdline-tools\bin"

sdkmanager.bat --sdk_root=<<Path root of your Android SDK>>   --List   (from google)   // or --List_Installed   (from PC)  // list all packages names etc...

sdkmanager.bat --sdk_root=<<Path root of your Android SDK>>   "build-tools;31.0.0"  "cmdline-tools;v5"   // packages names etc...

 

<<Path root of your Android SDK>> = D:\SDKsRAD\AndroidSDK25RAD113 (example)

Edited by programmerdelphi2k

Share this post


Link to post

Well, I got 33 installed.  One victory.  However, next problem is staring me in my face.  I do not have a TMapView component.  Google is of little help.

 

image.thumb.png.7122709bc1d741a2eb852e1e15d39dac.png

Share this post


Link to post
5 minutes ago, TazKy said:

Well, I got 33 installed.  One victory.  However, next problem is staring me in my face.  I do not have a TMapView component.  Google is of little help.

 

image.thumb.png.7122709bc1d741a2eb852e1e15d39dac.png

You should add the following in your manifest file:

android:exported="true"

Here's a pretty good explanation for that: https://www.cafonsomota.xyz/android-12-dont-forget-to-set-android-exported-on-yout-activities-services-and-receivers/

Edited by havrlisan

Share this post


Link to post

That did it.  Thanks.  SDK 32 works on Android 13.  I reinstalled 11.3, got SDK 33 again but did not set it.  So those that said 32 works are right after all.

 

That error message in that link makes it more clear what needs to be done.

Edited by TazKy

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×