-
Content Count
1626 -
Joined
-
Last visited
-
Days Won
37
Everything posted by Dave Nottage
-
Delphi 12.1 with MacOS version and iOS version
Dave Nottage replied to Peter J.'s topic in Cross-platform
You should be able to use the latest version of macOS (15.3). The issue will the highest version of Xcode, which for Delphi 12.1 is Xcode 16.1, as there were changes to Xcode 16.2 related to provisioning profiles that are not handled by Delphi 12.1, but is by Delphi 12.2 -
What gave you that impression? This is a shortcoming of Octoid - it should not be generating that code for 3rd party frameworks. Incidentally, there is already an import for GoogleSignIn in Kastri, which includes "loader" (fake) methods to ensure that dependent frameworks are also linked in: procedure AppAuthLoader; cdecl; external framework 'AppAuth'; procedure GoogleSignInLoader; cdecl; external framework 'GoogleSignIn'; procedure GoogleUtilitiesLoader; cdecl; external framework 'GoogleUtilities'; procedure GTMAppAuthLoader; cdecl; external framework 'GTMAppAuth'; procedure GTMSessionFetcherLoader; cdecl; external framework 'GTMSessionFetcher'; Good luck making GoogleSignIn work on iOS - see the latter comments in this issue regarding the problems I'm having.
-
iOS problem since switching from Delphi 12.1 to 12.2
Dave Nottage replied to BytePusher's topic in Cross-platform
Which ones, and how did you "remove" them? Being able to compile is not relevant to what the device has. So it's just not compiling in Release mode? -
iOS problem since switching from Delphi 12.1 to 12.2
Dave Nottage replied to BytePusher's topic in Cross-platform
If this issue does not happen for a blank app, I suggest indicating what dependencies the app has, e.g. whether it uses any 3rd party code (and what, exactly), or any frameworks from the iOS SDK aside from those that have imports in the Delphi source (iOSapi.xxxx files in the source\rtl\ios folder of the Delphi installation) -
iOS problem since switching from Delphi 12.1 to 12.2
Dave Nottage replied to BytePusher's topic in Cross-platform
Please include at least the first error, instead of warning. -
Hard to tell with no code to go by. Regardless, one thing you could do is add a property to the form (e.g. a Boolean) to indicate what it should do when OnShow is called, use an if statement to determine which code is executed, and set the property before ShowModal is called
-
Good to hear, and sorry.. yes - play-services-base18.1.0-Manifest.merge.xml which is generated by the Add Android Package function in Codex is no longer needed, so you could just delete that.
-
You can ignore this message. No, it is not correct. The file should not be deleted as it contains code necessary for the application to work. These are the relevant lines from the log: 2025/01/26 18:01:17.006 E com.embarcadero.AdTestD12 13280 13708 AndroidRuntime FATAL EXCEPTION: Thread-3 2025/01/26 18:01:17.006 E com.embarcadero.AdTestD12 13280 13708 AndroidRuntime Process: com.embarcadero.AdTestD12, PID: 13280 2025/01/26 18:01:17.006 E com.embarcadero.AdTestD12 13280 13708 AndroidRuntime java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/R$string; 2025/01/26 18:01:17.006 E com.embarcadero.AdTestD12 13280 13708 AndroidRuntime at com.google.android.gms.measurement.internal.zzga.zza(com.google.android.gms:play-services-measurement-base@@20.1.2:1) 2025/01/26 18:01:17.006 E com.embarcadero.AdTestD12 13280 13708 AndroidRuntime at com.google.android.gms.internal.measurement.zzee.<init>(com.google.android.gms:play-services-measurement-sdk-api@@20.1.2:8) 2025/01/26 18:01:17.006 E com.embarcadero.AdTestD12 13280 13708 AndroidRuntime at com.google.android.gms.internal.measurement.zzee.zzg(com.google.android.gms:play-services-measurement-sdk-api@@20.1.2:2) 2025/01/26 18:01:17.006 E com.embarcadero.AdTestD12 13280 13708 AndroidRuntime at com.google.android.gms.measurement.api.AppMeasurementSdk.getInstance(com.google.android.gms:play-services-measurement-sdk-api@@20.1.2:3) 2025/01/26 18:01:17.006 E com.embarcadero.AdTestD12 13280 13708 AndroidRuntime at com.google.android.gms.internal.ads.zzbnq.run(com.google.android.gms:play-services-ads-lite@@22.2.0:10) 2025/01/26 18:01:17.006 E com.embarcadero.AdTestD12 13280 13708 AndroidRuntime at java.lang.Thread.run(Thread.java:923) 2025/01/26 18:01:17.006 E com.embarcadero.AdTestD12 13280 13708 AndroidRuntime Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.R$string" on path: DexPathList[[zip file "/data/app/~~Pts3t76XeBO1SwYlnYkkgg==/com.embarcadero.AdTestD12-tDvQz1HYX23fQ4WpUJMxbw==/base.apk"],nativeLibraryDirectories=[/data/app/~~Pts3t76XeBO1SwYlnYkkgg==/com.embarcadero.AdTestD12-tDvQz1HYX23fQ4WpUJMxbw==/lib/arm, /data/app/~~Pts3t76XeBO1SwYlnYkkgg==/com.embarcadero.AdTestD12-tDvQz1HYX23fQ4WpUJMxbw==/base.apk!/lib/armeabi-v7a, /system/lib, /system/system_ext/lib]] The error is occurring because you removed ADTestD12.R.jar from the project. It seems you did not carefully read the instructions from the demo.
-
Is there an error message? If not, please use a log viewer to check if the system is generating any error messages.
-
It may be due to the version of Android on it, rather than the model. Having said that: where does signin-with-google-1.0.jar come from?
-
I'm curious as to why you have not mentioned what .jar files you are adding?
-
Still no crash. In future, please describe what is in your app when you first ask the question. Please provide a complete, reproducible example, i.e. just enough to reproduce the crash.
-
I'm not having that issue, using the same SDK etc as you. I created a basic app with just a TLocationSensor and a TButton, and set Active to True when clicking the button. Works OK even if no internet connection.
-
In App Purchase (consumable and subscription)
Dave Nottage replied to Joe Sansalone's topic in Cross-platform
As far as I can tell, subscriptions are yet to be supported on iOS, even in 12.2. You may be interested in this article (regarding iOS) - it was written in the Delphi 10.4 era, however the same principles may still apply. -
Reading and changing capabilities of Android Camera2 API
Dave Nottage replied to TurboMagic's topic in Cross-platform
I came across this post whilst looking for something else, and... ..actually, there is a way of achieving this using Delphi code. The following will convert the JObject reference (Obj in your case) to an integer array: function JObjectToIntArray(const AObject: JObject): TArray<Integer>; var LJNIArray: JNIArray; LJNIEnv: PJNIEnv; begin LJNIArray := TJNIResolver.JavaInstanceToID(AObject); SetLength(Result, TJNIResolver.GetArrayLength(LJNIArray)); if Length(Result) > 0 then begin LJNIEnv := TJNIResolver.GetJNIEnv; LJNIEnv^.GetIntArrayRegion(LJNIEnv, LJNIArray, 0, Length(Result), PJNIInt(Result)); TJNIResolver.ExceptionCheck; end; end; For Range<Integer>: var LRange: JRange; LLower, LUpper: Integer; LRange := TJRange.Wrap(Obj); LLower := TJInteger.Wrap(LRange.getLower).intValue; LUpper := TJInteger.Wrap(LRange.getUpper).intValue; It's in Androidapi.JNI.Util. To convert the JObject reference, simply Wrap it: var LRational: JRational; LRational := TJRational.Wrap(Obj); -
Delphi FMX SMS Receiver Unable to Retrieve PDU Content
Dave Nottage replied to Arsl01's topic in FMX
Probably because that will not work. This should: uses System.TypInfo, Androidapi.JNIBridge; var Obj: JObject; ... Obj := Bundle.get(StringToJString('pdus'); PDUs := TJavaObjectArray<JObject>(WrapJNIArray((Obj as ILocalObject).GetObjectID, TypeInfo(TJavaObjectArray<JObject>))); If there were a complete example, I might be able to test it. Note that you should free PDUs after you are done with it (same for PDU in the other part of your code), as TJavaArray and TJavaObjectArray types are Delphi objects. -
What would you discuss? If you're looking to report an issue, or request an enhancement, use the issues page.
-
Using Camera in Android 9 under Delphi 12.1 CE
Dave Nottage replied to Peter J.'s topic in Cross-platform
Without the log messages, or a complete, reproducible example, it's going to be hard to tell. -
That's only for "dangerous" permissions. It would help to read the entire page I linked to, so you know the difference.
-
Using Camera in Android 9 under Delphi 12.1 CE
Dave Nottage replied to Peter J.'s topic in Cross-platform
Have you tried viewing the log messages as per my last reply? -
When making what? As I said, you do not need to request permission at runtime, just execute the code that does the vibration. If that code is not working, please show your code.
-
You do not need to request the VIBRATE permission at runtime. Just enable it in the Uses Permissions section of the Project Options.
-
Using Camera in Android 9 under Delphi 12.1 CE
Dave Nottage replied to Peter J.'s topic in Cross-platform
That's "official" support. Theoretically, Delphi 12 can be used to create apps that run on Android 5 or later. Does the camera not appear at all, or is it once you've taken a photo? If the latter, you should show your code for TakePhotoDidFinishTaking. A complete test case would be even better Just because there's a lot of messages, it does not mean it is not useful. Use filtering to see only relevant messages. This link might help. -
For .\assets\internal\ on Android, this is incorrect. If a file exists, it will not be overwritten, regardless of whether or not the file is newer.