Tomtom Maps sdk for android failed to load tile

738 Views Asked by At

I'm trying to add TomTom maps to my android application that is built with Kotlin, but it gives me the error Tomtom Maps SDK for android failed to load tile and shows an empty map as shown in the image below :

tomtom maps failed to load tiles

And here are my files and detailed configurations I'm using:

  • In the project level Gradle file I have :
    allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url "https://maven.tomtom.com:8443/nexus/content/repositories/releases/"
        }
    }
}

  • In the app level Gradle file I have :

    dependencies {
    implementation("com.tomtom.online:sdk-maps:2.4244")
}

  • And I've added the APK to the AndroidManifests file :
    <meta-data
        android:name="OnlineMaps.Key"
        android:value="<my-Key-here>" />
  • Also, the map fragment is added to the .XML files :
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MapActivity">

    <fragment
        android:id="@+id/mapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:name="com.tomtom.online.sdk.map.MapFragment"
        />


</androidx.constraintlayout.widget.ConstraintLayout>
  • And finally, here is the Kotlin code used to start the map :

    //lateinit late initialization of non-null type variables
    private lateinit var map: TomtomMap
    private lateinit var fusedLocationClient: FusedLocationProviderClient
    private lateinit var lastLocation: Location

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_map)
        val mapFragment = supportFragmentManager
            .findFragmentById(R.id.mapFragment) as MapFragment
        mapFragment.getAsyncMap(this)
        fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)

    }


    companion object {
        private const val LOCATION_PERMISSION_REQUEST_CODE = 101
    }
    private fun setUpMap() {
        if (ActivityCompat.checkSelfPermission(this,
                android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this,
                arrayOf(android.Manifest.permission.ACCESS_FINE_LOCATION), LOCATION_PERMISSION_REQUEST_CODE)
            return
        }
        map.isMyLocationEnabled = true
        fusedLocationClient.lastLocation.addOnSuccessListener(this) {
                location ->
            if (location != null){
                lastLocation = location
                val currentLatLng = LatLng(location.latitude, location.longitude)
                val balloon = SimpleMarkerBalloon("You are Here")
                map.addMarker(MarkerBuilder(currentLatLng).markerBalloon(balloon))
                map.centerOn(CameraPosition.builder(currentLatLng).zoom(7.0).build())

            }

        }
    }


    override fun onMapReady(@NonNull tomtomMap: TomtomMap) {
        this.map = tomtomMap
        setUpMap()
    }
1

There are 1 best solutions below

1
On BEST ANSWER

Two possible points to check: