Embarcadero Rad Studio приложение Google Maps для Android

Я сделал простое приложение карты Google, которое вызывает URL-адрес карты из элемента управления веб-обозревателем, и это работало хорошо, но теперь я пытаюсь добавить больше функций во второе приложение с помощью элемента управления TMapView, но я не могу запустить свое новое приложение .

Я использую 32-разрядную версию Android с телефоном LG Q7 + и RAD Studio 10.3.3.

Это также происходит с образцом выбора типа карты в версиях C ++ и Pascal, поэтому я думаю, что это должно иметь какое-то отношение к FMX.Maps.Android.

Я тоже пробовал это со своим первым рабочим проектом, но как только я добавил элемент управления TMapView с правильными настройками и построил его, он просто вылетает точно так же с нулевой ошибкой в ​​строке 1525 в файле FMX.Maps.Android.pas. Это точно не мой код :)

Самым минимальным примером, я полагаю, было бы создание проекта C ++ с элементом управления TMapView, заполнение необходимых параметров и запуск или просто запуск образца Map Type Selector с 32-разрядным устройством Android.

Я добавил все необходимые разрешения на использование приложения, добавил право на использование картографической службы Google, а также добавил свой специальный ключ API, как и все статьи, с которыми я столкнулся, говорят, что нужно сделать для запуска приложения, но я просто получаю сбой:

"Project map_cpp.apk raised exception class EJNIException with message 'java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.ClassLoader java.lang.Class.getClassLoader()' on a null object reference'. 

Снимок экрана: https://i.imgur.com/OVwpSlY.png  сбой

Я связался с соответствующими SDK, насколько я могу судить. Даже безуспешно пробовал несколько версий java SDK, тот же сбой. Я не вижу ничего плохого в стеке вызовов, но я определенно не являюсь программистом на java или паскаль ни в коем случае и довольно новичок в RAD Studio.

Глядя на монитор Android, единственное, что мне бросается в глаза и выглядит как возможная ошибка аутентификации:

"unable to connect to service com.google.android.gms.auth.key.retrieval.service.start" 

но я не могу быть уверен в этом, и, как я уже сказал ранее, я следовал онлайн-руководствам по настройке. Я даю ссылку на статьи по настройке, за которыми следил ниже:

http://docwiki.embarcadero.com/RADStudio/Rio/en/Mobile_Tutorial:_Using_a_Map_Component_to_Work_with_Maps_(iOS_and_Android)

http://docwiki.embarcadero.com/

Журнал монитора Android:

03-28 09:45:57.559: I/rcadero.map_cp(28426): The ClassLoaderContext is a special shared library.
03-28 09:45:57.681: D/PhoneWindow(28426): windowLightStatusBar : false, disable View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
03-28 09:45:57.815: I/C:\src\rtl\source\startup\startup_android.cpp(28426): ###################### Calling __initialize_pascal_units
03-28 09:45:57.815: I/C:\src\rtl\source\startup\startup_android.cpp(28426): ### __initialize_pascal_units: start
03-28 09:45:57.815: I/C:\src\rtl\source\startup\startup_android.cpp(28426): ### _embtinit_start: 0x0x89491450  _embtinit_end: 0x0x89494884
03-28 09:45:58.345: I/C:\src\rtl\source\startup\startup_android.cpp(28426): ### __initialize_pascal_units: finished
03-28 09:45:58.431: D/OpenGLRenderer(28426): Skia GL Pipeline
03-28 09:45:58.701: I/Adreno(28426): QUALCOMM build                   : f161b04, I0380b38922
03-28 09:45:58.701: I/Adreno(28426): Build Date                       : 04/06/19
03-28 09:45:58.701: I/Adreno(28426): OpenGL ES Shader Compiler Version: EV031.25.03.03
03-28 09:45:58.701: I/Adreno(28426): Local Branch                     : mybranche9580cbd-6698-f10a-bcc9-1458d0b52ae8
03-28 09:45:58.701: I/Adreno(28426): Remote Branch                    : quic/gfx-adreno.lnx.1.0.r52-rel
03-28 09:45:58.701: I/Adreno(28426): Remote Branch                    : NONE
03-28 09:45:58.701: I/Adreno(28426): Reconstruct Branch               : NOTHING
03-28 09:45:58.701: I/Adreno(28426): Build Config                     : S L 6.0.7 AArch32
03-28 09:45:58.705: I/Adreno(28426): PFP: 0x005ff110, ME: 0x005ff066
03-28 09:45:58.712: I/ConfigStore(28426): android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
03-28 09:45:58.713: I/ConfigStore(28426): android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
03-28 09:45:58.762: W/System.err(28426): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.ClassLoader java.lang.Class.getClassLoader()' on a null object reference
03-28 09:45:58.762: W/System.err(28426):    at com.embarcadero.rtl.ProxyInterface.CreateProxyClass(ProxyInterface.java:16)
03-28 09:45:58.762: W/System.err(28426):    at android.app.NativeActivity.onStartNative(Native Method)
03-28 09:45:58.763: W/System.err(28426):    at android.app.NativeActivity.onStart(NativeActivity.java:223)
03-28 09:45:58.763: W/System.err(28426):    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1392)
03-28 09:45:58.763: W/System.err(28426):    at android.app.Activity.performStart(Activity.java:7180)
03-28 09:45:58.763: W/System.err(28426):    at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3045)
03-28 09:45:58.764: W/System.err(28426):    at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
03-28 09:45:58.764: W/System.err(28426):    at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
03-28 09:45:58.764: W/System.err(28426):    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
03-28 09:45:58.764: W/System.err(28426):    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
03-28 09:45:58.765: W/System.err(28426):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1864)
03-28 09:45:58.765: W/System.err(28426):    at android.os.Handler.dispatchMessage(Handler.java:106)
03-28 09:45:58.765: W/System.err(28426):    at android.os.Looper.loop(Looper.java:205)
03-28 09:45:58.765: W/System.err(28426):    at android.app.ActivityThread.main(ActivityThread.java:6991)
03-28 09:45:58.765: W/System.err(28426):    at java.lang.reflect.Method.invoke(Native Method)
03-28 09:45:58.766: W/System.err(28426):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
03-28 09:45:58.766: W/System.err(28426):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:884)

Спасибо за любую помощь!


person drwbns    schedule 24.03.2020    source источник


Ответы (1)


Дэйв Ноттэдж разобрался - ссылка ниже:

«Некоторые образцы приложений необходимо обновить, чтобы использовать новые библиотеки сервисов Google Play. Для этого в Диспетчере проектов в разделе« Целевые платформы »разверните целевую платформу Android, щелкните правой кнопкой мыши« Библиотеки »и выберите« Восстановить системные файлы по умолчанию ». Перестройте приложение и все должно быть в порядке ".

https://www.delphiworlds.com/2019/02/a-fix-for-using-tmapview-on-android-9-devices/#comment-9841

person drwbns    schedule 29.03.2020