Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Delphi 10.2.3 VERSUS Delphi 10.3.2 - TMapView (https://www.delphipraxis.net/201603-delphi-10-2-3-versus-delphi-10-3-2-tmapview.html)

Jef 6. Aug 2019 17:07

Delphi 10.2.3 VERSUS Delphi 10.3.2 - TMapView
 
Hallo Zusammen!

Mit der Version 10.3.2 scheint die TMapView für Android nicht mehr zu funktionieren. Die App bleibt im Splashscreen hängen.

Dasselbe Projekt in Version 10.2.3 (einfaches Formular + TMapview + ApiKey + entsprechende Berechtigungen) funktioniert hingegen, also öffnet sich normal auf dem Smartphone. (Android 8 und 9 getestet).

Hat jemand dasselbe Problem? Wie bekommt man das unter 10.3.2 zum Laufen?

Rollo62 7. Aug 2019 06:05

AW: Delphi 10.2.3 VERSUS Delphi 10.3.2 - TMapView
 
http://docwiki.embarcadero.com/RADSt...S_and_Android)
http://docwiki.embarcadero.com/RADSt...rmission_Model

Du brauchst
- gültiger ApiKey
- entsprechende Berechtigungen) mit der neuen RequestPermissions Abfrage
- Entitlements Maps

Jef 8. Aug 2019 17:15

AW: Delphi 10.2.3 VERSUS Delphi 10.3.2 - TMapView
 
Danke für den Hinweis. Daran wird es wohl liegen. Bislang klappt es aber noch nicht.
Das neue Android Permission Model wurde in dieser Demo umgesetzt: "Object Pascal/Multi-Device Samples/Device Sensors and Services/Map Type Selector".
Die aktuelle Version der Demo habe ich hier geladen, um auszuschließen, dass der Fehler in meinem Code liegt: https://github.com/Embarcadero/RADSt...ype%20Selector

Den ApiKey habe ich bei den Versionsinfos eingetragen.

Folgende Meldung :"[PAClient Fehler] Fehler: E4104 C:\Users\Public\Documents\Embarcadero\Studio\20.0\ CatalogRepository\AndroidNDK-17b_20.0.34749.6593\toolchains\arm-linux-androideabi-4.9\prebuilt\windows\bin\arm-linux-androideabi-strip.exe:C:\Users\[name]\Documents\Embarcadero\Studio\Projekte\RADStudio10 .3.2Demos-master\RADStudio10.3.2Demos-master\Object Pascal\Multi-Device Samples\Device Sensors and Services\Map Type Selector\Android\Release\Map_ObjectPascal\library\ lib\armeabi-v7a\libMap_ObjectPascal.so: No such file or directory"

Die "arm-linux-androideabi-strip.exe" ist aber genau an dem Ort.

Wäre dankbar für weitere Ratschläge (auf meinem Testgerät läuft Android 9)

Rollo62 8. Aug 2019 17:37

AW: Delphi 10.2.3 VERSUS Delphi 10.3.2 - TMapView
 
Sind im SDK Manager alle Einträge SDK/NDK/JDK korrekt (keine gelbes Dreiecke, und wenn Du den Dateilladen button drückst ist er im richtigen Verzeichnis) ?

Die AndroidNDK-17b_20.0.34749.6593 und SDK liegen u.U. an doch anderen Stellen,
wenn Du das neben das alte 10.3.2 installiert hast.

Ich mache immer einen cleanen Install in eine VM, da wird dann alles so wie von -Setup vorgeshen installiert.

Jef 8. Aug 2019 18:00

AW: Delphi 10.2.3 VERSUS Delphi 10.3.2 - TMapView
 
Danke. Keine gelben Dreiecke und die Basispfade sind alle korrekt und führen auch dahin, wo sie sollen. Vielleicht hilft wirklich nur ein cleaner Install..

Rollo62 8. Aug 2019 18:46

AW: Delphi 10.2.3 VERSUS Delphi 10.3.2 - TMapView
 
Vielleicht kopierst Du dir das Projekt "Map Type Selector" an einen freundlicheren Ort,
so dass Du nicht diese ellenlange Pfade hast.
Bin mir nicht sicher, sind da Spaces drin ?
Am Besten mal Alles in dem Verzeichnis in ein einfaches Verzeichnis kopieren
C:\Map\
und dann darin das .dproj öffen und nochmal versuchen zu kompilieren.

Ich habe die Beispiele jetzt nicht getestet, aber ich kopiere mir die Relevanten eigentlich immer
nach D:\Samples oder so ähnlich, damit man nicht bei den Pfaden die Übersicht verliert.

Müsste eigentlich trotzdem funktionieren, aber einen Versuch wäre mir das Wert.

Kompiliert es denn unter Windows ?

Jef 20. Aug 2019 15:55

AW: Delphi 10.2.3 VERSUS Delphi 10.3.2 - TMapView
 
Nach einer sauberen Neuinstallation habe ich keine Probleme mehr mit dem SDK Manager. Auch der Pfad zum Projekt ist radikal runtergekürzt.

Trotzdem bekomme ich eine einfache Karte auf Android 9 nicht zum Laufen (bei Android 8 klappt es).

Zu meinem Testprojekt:
im Form liegt nur eine TMapview
in der Berechtigungsliste ist der Kartendienst auf true
die Berechtigungen: Internet, genauer Standort, ungefährer Standort
ein gültiger API Key ist in den Versionsinformationen eingetragen

Folgender Code in der .pas (auf Basis der aktuellen Demo "Map Type Selector" mit der neuen RequestPermissions Abfrage):
Code:
unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,

  System.Permissions,

  FMX.Controls.Presentation, FMX.StdCtrls, FMX.Layouts, FMX.ListBox, FMX.Edit,
  FMX.Maps;

type
  TForm1 = class(TForm)
    MapView1: TMapView;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    FPermissionFineLocation: string;
    procedure LocationPermissionRequestResult(Sender: TObject; const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses
{$IFDEF ANDROID}
  Androidapi.Helpers,
  Androidapi.JNI.JavaTypes,
  Androidapi.JNI.Os,
{$ENDIF}
  FMX.DialogService;

{$R *.fmx}

procedure TForm1.FormCreate(Sender: TObject);
begin
{$IFDEF ANDROID}
  FPermissionFineLocation := JStringToString(TJManifest_permission.JavaClass.ACCESS_FINE_LOCATION);
{$ENDIF}
  PermissionsService.RequestPermissions([FPermissionFineLocation], LocationPermissionRequestResult);
end;

procedure TForm1.LocationPermissionRequestResult(Sender: TObject; const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>);
begin
  // 2 permissions involved: ACCESS_FINE_LOCATION and ACCESS_COARSE_LOCATION
  if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
  begin
    MapView1.ControlOptions := MapView1.ControlOptions + [TMapControlOption.MyLocation];
    MapView1.LayerOptions := MapView1.LayerOptions + [TMapLayerOption.UserLocation];
  end;
end;

end.
Meine Testgeräte:
- Samsung S5 mit Lineage auf Basis von Android 8: die App startet korrekt
- ein Fairphone 2 mit Lineage auf Basis von Android 9: die App startet nicht

Was mache ich mit dieser Debugger Meldung (nur Andriod 9)?
Erste Gelegenheit für Exception bei $8CD1E0A1. Exception-Klasse EJNIException mit Meldung 'java.lang.IllegalStateException: A required meta-data tag in your app's AndroidManifest.xml does not exist. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />'. Prozess Project1.apk (19416)

Die geänderte Manifest XML schaut jetzt so aus:
Code:
<?xml version="1.0" encoding="utf-8"?>
<!-- BEGIN_INCLUDE(manifest) -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="%package%"
        android:versionCode="%versionCode%"
        android:versionName="%versionName%"
        android:installLocation="%installLocation%">

    <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" />
    <%uses-permission%>
    <uses-feature android:glEsVersion="0x00020000" android:required="True"/>
    <application android:persistent="%persistent%"
        android:restoreAnyVersion="%restoreAnyVersion%"
        android:label="%label%"
        android:debuggable="%debuggable%"
        android:largeHeap="%largeHeap%"
        android:icon="%icon%"
        android:theme="%theme%"
        android:hardwareAccelerated="%hardwareAccelerated%"
        android:resizeableActivity="false">
        <%provider%>
        <%application-meta-data%>
        <%services%>
        <!-- Our activity is a subclass of the built-in NativeActivity framework class.
             This will take care of integrating with our NDK code. -->
        <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity"
                android:label="%activityLabel%"
                android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
                android:launchMode="singleTask">
            <!-- Tell NativeActivity the name of our .so -->
            <meta-data android:name="com.google.android.gms.version"
                       android:value="@integer/google_play_services_version" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <%activity%>
        <%receivers%>
    </application>
</manifest>
<!-- END_INCLUDE(manifest) -->
Das brachte auch keinen Erfolg

MEissing 20. Aug 2019 16:08

AW: Delphi 10.2.3 VERSUS Delphi 10.3.2 - TMapView
 
Google Services installiert / aktiviert?

LineageOS ohne GApps funktioniert halt nicht....

Jef 20. Aug 2019 16:40

AW: Delphi 10.2.3 VERSUS Delphi 10.3.2 - TMapView
 
GApps ist auf beiden Testgeräten drauf. PlayStore, GoogleKonto, Mail, Maps usw. laufen.

MEissing 21. Aug 2019 09:20

AW: Delphi 10.2.3 VERSUS Delphi 10.3.2 - TMapView
 
Die projektspezifische Android Template Datei mal löschen-> neu erstellen lassen/einstellen..


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:04 Uhr.
Seite 1 von 2  1 2      

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