Jump to content

duzzell

Members
  • Content Count

    20
  • Joined

  • Last visited

Community Reputation

0 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. duzzell

    Android SDK versions for Android-32 bit

    @Build3999Thanks. I'm sending the same builds to the Pixel and the Samsung. So I don't think there's anything missing in the builds. I think the difference must be in the device.
  2. duzzell

    Android SDK versions for Android-32 bit

    It came with the component. https://github.com/MEStackCodes/SignInWithGoogleDelphi
  3. duzzell

    Android SDK versions for Android-32 bit

    32-bit and 64-bit versions of my app run on a Pixel, but neither version runs on the Samsung I was using for 32-bit testing.
  4. duzzell

    Android SDK versions for Android-32 bit

    credentials-1.2.2.jar credentials-play-services-auth-1.2.2.jar googleid-1.1.0.jar kotlinx-coroutines-core-1.7.1.jar play-services-auth-20.7.0.jar play-services-fido-20.1.0.jar signin-with-google-1.0.jar Thanks
  5. Hello I'm using Delphi 12.0 to build an Android app. I'd like to use a component that requires Android SDK 33/34. The component runs as expected on Android-64. But on Android-32 I get the following error when loading the component: OnSignInException exception: getCredentialAsync no provider dependencies found - please ensure the desired provider dependencies are added I've added the dependencies (.jar files) to both the 32-bit and 64-bit Android configurations in Delphi. There's an issue in Delphi where it seems identical libraries added to both Android configurations are disaplyed in only one. So I've removed the .jar files from both configs and added them back to just the 32-bit config. The component still generates the error on Android-32. Is this an SDK version issue? Below is screenshot of my SDK manager. It looks to me like I'm running Android 35 for 64-bit but Android 25 for 32-bit. Am I interpreting this correctly (the version displayed in my SDK\platforms folder is android-34)? Is there an Android SDK 34 or higher for Android-32? I've exported and compared my Android-32 and Android-64 cofigs. They are very similar and contain nothing that would suggest to me they result in different SDK versions for the two platforms. The posts I find online refer to Android SDK versions without distinguising between Android-32 and Android-64, as if they're always the same. So I'm kind of surprised and confused that I have this situation in the first place. If there is an Android SDK 33 or higher for Android-32, and it can be successfully intalled in Delphi, can someone point me to instructions for doing this? Thanks
  6. If I put a breakpoint on the if statement and then evaluate lUserDefault.getStringValue at that point, yes, the correct value is returned. I have not tried returning the TLocalDefault object to the caller instead of the string value.
  7. I'm running Delphi 12.1 on Windows 10, to build an FMX app. I'm using TMS Aurelius v5.19 against a SQLite database via a FireDAC driver. I'm having trouble reading strings from the database on Android 32 and 64. TLocalDefault has the following structure: TLocalDefault = class(TLocalDBObject) private [Column(STRCreatedAt, [TColumnProp.Required])] fCreatedAt: TDateTime; [Column(STRID, [TColumnProp.NoUpdate])] fID: String; [Column(STRModifiedAt, [])] fModifiedAt: TDateTime; [Column(STRKeyValue, [TColumnProp.Unique], KShortStringLength)] fKeyValue: String; [Column(STRIsPermanent, [])] fIsPermanent: integer; [Column(STRStringValue, [], KShortStringLength)] fStringValue: String; function GetIsPermanent: Boolean; function GetKeyValue: String; function GetStringValue: string; procedure SetCreatedAt(const Value: TDateTime); procedure SetIsPermanent(const Value: Boolean); procedure SetKeyValue(const Value: String); procedure SetStringValue(const Value: string); public constructor Create(const aKey, aStringValue: String; const aIsPermanent: Boolean = False); overload; class procedure SetUserDefault(const KeyValue, StringValue: string; aIsPerm: Boolean = False); class procedure SignOut; class function StringValueForKey(const KeyValue: string): string; property IsPermanent: Boolean read GetIsPermanent write SetIsPermanent; property KeyValue: String read GetKeyValue write SetKeyValue; property StringValue: String read GetStringValue write SetStringValue; published property CreatedAt: TDateTime read fCreatedAt write SetCreatedAt; property ID: String read fID; property ModifiedAt: TDateTime read fModifiedAt write fModifiedAt; end; I use the following function to retrieve string values: class function TLocalDefault.StringValueForKey(const KeyValue: string): string; var lUserDefault: TLocalDefault; begin lUserDefault := ObjectManager.Find<TLocalDefault>. Where(Linq['KeyValue'] = KeyValue).UniqueResult; if Assigned(lUserDefault) then result := lUserDefault.StringValue else result := ''; end; This works on Windows, ios, macos and Linux. On Android 32 and 64 this function always returns an empty string. In the Android debugger, lUserDefault.StringValue evaluates to the expected string value. But after the assignment to result, Result still evaluates to ''. The Local Variables list also shows '' for Result. However, the entry for Result has a caret next to it. When I click the caret, a second line appears with a Name of &Result and a Value of the expected string value for this TLocalDefault. The other platforms do not display the caret. Is this due to string handling on Android? I've tried casting lUserDefault.StringValue to a string, assigning lUserDefault.StringValue to a temporary string variable and then to Result, capturing the TCriterion returned by Find and calling UniqueResult on it, assigning lUserDefault.StringValue to the function name instead of Result, and assigning &Result to Result. I've also deleted and reinstalled the Android SDK, NDK and Java. All have failed to give me the StringValue. Any ideas about what may be going on, or how I shoule be doing this? Thanks
  8. I found nothing. I reinstalled FMXLinux from GetIt and everything works.
  9. The story... I've already reinstalled Delphi 12.1 since installing it originally. That was because of a Linux problem. Reinstalling 'fixed' the problem. I just uninstalled and reinstalled Delphi. No special cleaning operations. But now another Linux problem has cropped up. I see over and over people running Delphi on a VM. I tried that a few years back on a Mac. I forget the details but it had 16 GB RAM and an open source VM system (Parallels? or maybe free VMWare?). Delphi's jerky performance on the VM drove me nuts. I finally decided to go back to giving Delphi its own machine. I'm don't want to take the time right now to go back to a VM, even though it sounds like a good idea. Instead I'm going to spend my weekend going thru my Linux configuration with a fine toothed comb, trying to find what I'm doing wrong, and fix it. So you just opened my eyes. I've got an ongoing, persistent Linux problem. I'd 'forgotten' about my other Linux problem until I talked to you.
  10. I haven't changed anything about the stock MasterDetail app. FMX.Forms is declared in both the project file and the main unit. I've done no tinkering. I have added paths but not changed any of the existing ones, I believe. Your empty project behaves exactly as mine does, giving the same errors. I will check my paths against yours... Thanks for taking your time to help me.
  11. I have a Linux deployment profile (Ubuntu) configured. Connection to it succeeds. If I make a new project, say MasterDetailApplication, building succeeds for all platforms but Linux. The project file uses FMX.Forms. I see errors: Package unit 'FMX.Forms' cannot appear in contains or uses clauses... Undeclared identifier 'Application'... I'm using the FMXLinux installed by the Delphi 12.1 web installer. I have not tried installing FMXLinux from GetIt.
  12. I'm seeing this same error with Delphi 12.1 compiling for Linux. @JGMS did this clear up for you?
  13. Well, I was going to settle for Beyond Compare. But I found that when I choose Beyond Compare as the Default internal viewer, then choose External viewer as preferred, the MMX Structured Diff Viewer is displayed. So I got what I want. Thanks
  14. In Delphi 12.1, I try to make the MMX Structured Diff View the default: - select Structured Diff Viewer - click default button (or not, it doesn't matter) - choose External viewer - click Save The IDE ignores my selections and continues to display the default internal viewer. When I re-open the Difference Viewer dialog, Internal view is selected, as if my changes were not saved. I know this is not your doing but do you have any ideas about what I may be doing wrong? Thanks
  15. I've been using pre-release versions of the code and different versions of Delphi were handled by deeply nested defines that did not seem quite right to me. I'm using the release version now, the defines work correctly, and I had to undo some of the changes I had made. Also, the new syntax highlighting in Delphi 12 that reflects the current state of defines was a big help.
×