Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Rio 10.3 Java Class JCameraPosition_Builder not found (https://www.delphipraxis.net/199192-delphi-rio-10-3-java-class-jcameraposition_builder-not-found.html)

AuronTLG 4. Jan 2019 11:43

Delphi Rio 10.3 Java Class JCameraPosition_Builder not found
 
Moin,

ich habe mir diese Woche mal das neue 10.3 installiert und bin gerade dabei, durchzuschauen, was so alles nicht mehr funktioniert.

Generell habe ich hauptsächlich Probleme mit FMX auf Android, und am meisten Rätsel gibt mir gerade ein Fehler auf, der das Starten einer
meiner Apps verhindert, die eine TMapView verwendet.

Im Prinzip stürzt die App ab beim Starten ab, die Fehlermeldung, die ich im Debugger begutachten konnte, war "Exception der Klasse EJNI mit der Meldung
'Java-Klasse JCameraPosition_Builder wurde nicht gefunden' aufgetreten".
Gehe ich mit Gewalt weiter, bekomme ich eine etwas spezifischere Meldung "Exception der Klasse EReadError mit der Meldung 'Fehler beim Lesen von
MapView.Zoom: JavaKlasse JCameraPosition_Builder wurde nicht gefunden' aufgetreten".

Logischerweise lief die App auf 10.2 problemlos. Die Klasse "JCameraPosition_Builder" existiert auch definitiv in AndroidAPI.JNI.PlayServices.
"MapView" ist der Name meiner TMapView-Komponente. Ich habe generell Probleme damit, den Fehler einzugrenzen. Der Debugger geht durch die OnCreate meiner Hauptform durch,
ist aber noch nicht in der OnCreate meiner Form, welche die MapView beinhaltet, drin, weswegen ich davon ausgehe, dass Embarcadero etwas grundsätzlich kaputt geschossen hat.

Trotzdem wollte ich mal nachfragen, ob hier irgendwer noch eine MapView auf Android in der Version 10.3 verwendet und dasselbe Problem hat (oder eventuell auch nicht?).

Rollo62 4. Jan 2019 14:42

AW: Delphi Rio 10.3 Java Class JCameraPosition_Builder not found
 
Dumme Frage: Die nötigen Permissions und das neue Permissionhandling hast du benutzt ?

Das ist nämlich seit letztem Jahr Pflicht, und alte Apps brauchen etwas Anpassung.
Oder benutzt du noch das KastriFree Projekt, das sollte es auch tun.

AuronTLG 4. Jan 2019 16:26

AW: Delphi Rio 10.3 Java Class JCameraPosition_Builder not found
 
Ich benutze ganz normal die Berechtigungen in den Projektoptionen.
Die einzigen Änderungen, die ich diesbezüglich zwischen 10.2.3 und 10.3 sehe, scheinen optisch zu sein, die Berechtigungen selbst scheinen wie gehabt zu sein.

Rollo62 5. Jan 2019 09:06

AW: Delphi Rio 10.3 Java Class JCameraPosition_Builder not found
 
Also Änderung gibt es in der Anwendung, es müssen bei "dangerous permissions" diese bei bestimmten Aktionen vorher abgefragt werden.

AuronTLG 7. Jan 2019 08:44

AW: Delphi Rio 10.3 Java Class JCameraPosition_Builder not found
 
Die neue Permissions-Regelung kannte ich tatsächlich noch nicht, war aber auch leider nicht die Ursache des Fehlers.
Auch mit manuell abgefragten Permissions stürzt die App wie oben beschrieben ab.

AuronTLG 7. Jan 2019 12:01

AW: Delphi Rio 10.3 Java Class JCameraPosition_Builder not found
 
Ich habe inzwischen die Fehlerstelle lokalisiert, welche in FMX.Maps.Android liegt:

Zeile 615

Code:
function TAndroidMapView.BuildCameraPosition: JCameraPosition;
begin
  Result := TJCameraPosition_Builder.JavaClass.init()
    .target(TJLatLng.JavaClass.init(FLocation.Latitude, FLocation.Longitude))
    .zoom(GetZoom)
    .tilt(GetTilt)
    .bearing(GetBearing)
    .build;
end;
Sobald diese Methode ausgeführt wird, tritt der Fehler auf, was seltsam ist, da die angeblich nicht gefundene Javaklasse normal integriert zu sein scheint.
Ich werde mal weiter rumprobieren, was das sein könnte; wenn wer Ideen oder bereits Erfahrung damit hat, als her damit. Ich bin doch hoffentlich nicht der einzige arme Tropf, der in 10.3 auf Android mit ner Mapview arbeitet...:P

AuronTLG 7. Jan 2019 14:32

AW: Delphi Rio 10.3 Java Class JCameraPosition_Builder not found
 
So, weiteres Update:

Wie es scheint, fehlt mir die google-play-services.dex.jar welche zwar in den Android-Bibliotheken des Projektes aufgelistet, im Ordner aber nicht vorhanden ist.

Mein Delphi 10.2 hingegen hat sie im entsprechenden Ordner liegen.

Jetzt stellt sich mir die Frage, warum sie nicht da ist und wo ich die aktuelle Datei herbekomme.
Ich habe die Google Play Services ganz normal über Android-Tools installiert...

AuronTLG 7. Jan 2019 14:56

AW: Delphi Rio 10.3 Java Class JCameraPosition_Builder not found
 
Die nervigsten Probleme sind auch immer die bescheuertsten...

Das hier war das Problem -> http://docwiki.embarcadero.com/RADSt...tes_Workaround


Meine App ist vor Version 10.2.3 gebaut worden, welche ich auch gepflegt übersprungen habe, und hat dementsprechend noch besagte google-play-services.dex.jar in der Android-Bibliothek gelistet gehabt, welche aber gar nicht mehr aktuell ist.

Ein Rechtsklick auf "Bibliotheken" + "Systemdateien auf Standard zurücksetzen" und das Problem ist gelöst.

Yey...

Rollo62 7. Jan 2019 16:50

AW: Delphi Rio 10.3 Java Class JCameraPosition_Builder not found
 
Gut das du eine Lösung für dich gefunden hast.

Wenn du noch auf Tokyo bist (lt. deinem DP Eintrag), dann käme das KastriFree Projekt in Frage um die Permissions ans Laufen zu bringen.

Unter Rio ist das schon von Emba gelöst und integriert, aber ein klein wenig anders als bei Kastri.
Es lohnt sich auf jeden Fall mal das Kastri-Projekt API26 und den Blog durchzulesen,
um zu verstehen worum es dabei geht.

Generell habe ich die Empfehlung das Projekt und die Mainform so clean wie möglich zu halten.
Ich habe da quasi gar nichts mehr drin stehen, alle Views und Logic liegen in anderen Units als Unter-Frames/Forms in einem Rectangle auf der MainForm.

So kann ich schell mal ein neues, leeres Projekt von der IDE anlegen lassen, und diese dann als neue Basis für meine Apps nehmen.
Damit werden oft solche Manifest, Libraries und andere Probleme und Inkompatibilitäten automatisch gelöst, die entstehen wenn man von einer zur nächsten Version wechselt.

Rollo


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 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