Hello Developer, Hope you guys are doing great. Today at Tutorial Guruji Official website, we are sharing the answer of Google Map does not render in Android App without wasting too much if your time.
The question is published on by Tutorial Guruji team.
The question is published on by Tutorial Guruji team.
I am trying to load a Google Map inside a view on an Android application. The view displays an empty map as shown below:
Below is a look at my code:
The FragmentController
public class LookFragment extends Fragment implements OnMapReadyCallback { private View rootView; private GoogleMap map; private MapView mMapView; MarkerOptions place1, place2; public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.fragment_have_a_look, container, false); String[] countries = new String[] {"Roadwork", "Current Incident"}; ArrayAdapter<String> adapter = new ArrayAdapter<>( getContext(), R.layout.dropdown_menu_popup_item, countries); AutoCompleteTextView editTextFilledExposedDropdown = root.findViewById(R.id.have_a_look_filter_field); editTextFilledExposedDropdown.setAdapter(adapter); try{ SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.have_a_look_map_view); mapFragment.getMapAsync(this); }catch (InflateException e){ Log.e("TAG", "Inflate exception"); } return root; } @Override public void onMapReady(GoogleMap googleMap) { map = googleMap; place1 = new MarkerOptions().position(new LatLng(52.930535,-0.046874)).title("Location 1"); place2 = new MarkerOptions().position(new LatLng(52.927879, -0.052469)).title("Location 2"); map.addMarker(place1); map.addMarker(place2); map.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(52.930535,-0.046874))); } }
The Fragment inside the View
<fragment android:id="@+id/have_a_look_map_view" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_marginTop="8dp" android:layout_marginBottom="60dp" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/have_a_look_search_layout" />
The AndroidManifest File
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="www.aidanm.trafficscotland"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/ <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <uses-library android:name="org.apache.http.legacy" android:required="false" /> <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Logcat Output
03/06 12:08:16: Launching 'app' on Pixel 3 API 29. $ adb shell am start -n "www.aidanm.trafficscotland/www.aidanm.trafficscotland.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D Waiting for application to come online: www.aidanm.trafficscotland.test | www.aidanm.trafficscotland Waiting for application to come online: www.aidanm.trafficscotland.test | www.aidanm.trafficscotland Waiting for application to come online: www.aidanm.trafficscotland.test | www.aidanm.trafficscotland Connecting to www.aidanm.trafficscotland Waiting for application to start debug server Waiting for application to come online: www.aidanm.trafficscotland.test | www.aidanm.trafficscotland Connecting to www.aidanm.trafficscotland Connected to the target VM, address: 'localhost:8600', transport: 'socket' Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page. I/System.out: Debugger has connected waiting for debugger to settle... I/System.out: waiting for debugger to settle... I/System.out: waiting for debugger to settle... I/System.out: waiting for debugger to settle... I/chatty: uid=10148(www.aidanm.trafficscotland) identical 1 line I/System.out: waiting for debugger to settle... I/System.out: waiting for debugger to settle... I/System.out: debugger has settled (1428) I/trafficscotlan: The ClassLoaderContext is a special shared library. D/libEGL: Emulator has host GPU support, qemu.gles is set to 1. W/libc: Unable to set property "qemu.gles" to "1": connection failed; errno=13 (Permission denied) W/RenderThread: type=1400 audit(0.0:256): avc: denied { write } for name="property_service" dev="tmpfs" ino=5953 scontext=u:r:untrusted_app:s0:c148,c256,c512,c768 tcontext=u:object_r:property_socket:s0 tclass=sock_file permissive=0 D/libEGL: loaded /vendor/lib/egl/libEGL_emulation.so D/libEGL: loaded /vendor/lib/egl/libGLESv1_CM_emulation.so D/libEGL: loaded /vendor/lib/egl/libGLESv2_emulation.so W/trafficscotlan: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed) W/trafficscotlan: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed) W/trafficscotlan: Accessing hidden field Landroid/view/View;->mAccessibilityDelegate:Landroid/view/View$AccessibilityDelegate; (greylist, reflection, allowed) D/HostConnection: HostConnection::get() New Host Connection established 0xe118e180, tid 15452 D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_3_0 W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 0 0 D/EGL_emulation: eglCreateContext: 0xf797f520: maj 3 min 0 rcv 3 D/EGL_emulation: eglMakeCurrent: 0xf797f520: ver 3 0 (tinfo 0xf7989b70) W/Gralloc3: mapper 3.x is not supported D/HostConnection: createUnique: call D/HostConnection: HostConnection::get() New Host Connection established 0xcd3f1180, tid 15452 D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_3_0 D/eglCodecCommon: allocate: Ask for block of size 0x1000 D/eglCodecCommon: allocate: ioctl allocate returned offset 0x3ff706000 size 0x2000 D/EGL_emulation: eglMakeCurrent: 0xf797f520: ver 3 0 (tinfo 0xf7989b70) D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 1 0 I/Choreographer: Skipped 30 frames! The application may be doing too much work on its main thread. I/zzbz: Making Creator dynamically W/trafficscotlan: Unsupported class loader I/DynamiteModule: Considering local module com.google.android.gms.maps_dynamite:0 and remote module com.google.android.gms.maps_dynamite:222 I/DynamiteModule: Selected remote version of com.google.android.gms.maps_dynamite, version >= 222 V/DynamiteModule: Dynamite loader version >= 2, using loadModule2NoCrashUtils I/Google Maps Android API: Google Play services client version: 12451000 I/Google Maps Android API: Google Play services package version: 200414040 W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J (greylist,core-platform-api, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V (greylist, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->allocateInstance(Ljava/lang/Class;)Ljava/lang/Object; (greylist, linking, allowed) W/trafficscotlan: Accessing hidden method Llibcore/io/Memory;->peekLong(JZ)J (greylist, reflection, allowed) Accessing hidden method Llibcore/io/Memory;->pokeLong(JJZ)V (greylist, reflection, allowed) Accessing hidden method Llibcore/io/Memory;->pokeInt(JIZ)V (greylist, reflection, allowed) Accessing hidden method Llibcore/io/Memory;->peekInt(JZ)I (greylist, reflection, allowed) Accessing hidden method Llibcore/io/Memory;->pokeByte(JB)V (greylist, reflection, allowed) Accessing hidden method Llibcore/io/Memory;->peekByte(J)B (greylist, reflection, allowed) Accessing hidden method Llibcore/io/Memory;->pokeByteArray(J[BII)V (greylist, reflection, allowed) Accessing hidden method Llibcore/io/Memory;->peekByteArray(J[BII)V (greylist, reflection, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->arrayBaseOffset(Ljava/lang/Class;)I (greylist,core-platform-api, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->arrayIndexScale(Ljava/lang/Class;)I (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, reflection, allowed) W/trafficscotlan: Accessing hidden field Ljava/nio/Buffer;->address:J (greylist, reflection, allowed) Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, reflection, allowed) Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, reflection, allowed) Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, reflection, allowed) Accessing hidden method Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V (greylist, reflection, allowed) Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, reflection, allowed) Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, reflection, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed) I/Choreographer: Skipped 75 frames! The application may be doing too much work on its main thread. D/HostConnection: HostConnection::get() New Host Connection established 0xcd3f2670, tid 15487 D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_3_0 D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 0 0 D/EGL_emulation: eglCreateContext: 0xe111ee20: maj 1 min 0 rcv 1 W/Gralloc3: allocator 3.x is not supported D/EGL_emulation: eglMakeCurrent: 0xe111ee20: ver 1 0 (tinfo 0xcd1b21a0) I/OpenGLRenderer: Davey! duration=1409ms; Flags=0, IntendedVsync=94683831255201, Vsync=94685081255151, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=94685084503140, AnimationStart=94685084598140, PerformTraversalsStart=94685086519140, DrawStart=94685181584140, SyncQueued=94685212145140, SyncStart=94685213087140, IssueDrawCommandsStart=94685213868140, SwapBuffers=94685237122140, FrameCompleted=94685241560140, DequeueBufferDuration=95000, QueueBufferDuration=1264000, W/DynamiteModule: Local module descriptor class for com.google.android.gms.googlecertificates not found. I/DynamiteModule: Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:4 Selected remote version of com.google.android.gms.googlecertificates, version >= 4 W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed) W/trafficscotlan: Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, linking, allowed) Accessing hidden method Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V (greylist, linking, allowed)
What I Have Tried
Changing the API key for different privileges:
- Using an unrestricted key
- Using a key only the maps APIS
- Signing the app in the Keystore and copying the SHA
Thank you in advance for the help.
Answer
This won’t help most users, but I have found the reason why it wouldn’t work. Turns out the network I was connected to was blocking all access to the google maps service. Rookie error but remember to try changing networks to see if that’s the problem.
We are here to answer your question about Google Map does not render in Android App - If you find the proper solution, please don't forgot to share this with your team members.