HERE setup
How to drive the HERE SDK (Explore Edition) through MapConductor. HERE ships an AAR rather than a Maven artifact, so there is a file-drop step.
Before you start
Get the credentials and the AAR
- Create a HERE developer account.
- Create a project in the HERE Developer Portal.
- Generate an access key ID and secret.
- Download the HERE SDK Explore Android AAR. Anything in the 4.26 line should work.
Drop the AAR into the project
Put the AAR under the project's libs/ directory. The file name must match exactly what Gradle references.
<project root>/
└── libs/
└── heresdk-explore-android-4.26.5.0.299343.aarAdd the Secrets Gradle Plugin
This is how the key stays out of source control: the plugin reads secrets.properties and substitutes the value into the AndroidManifest.xml placeholder at build time.
plugins {
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}Add the dependencies
The AAR is referenced as a local file — match the name to the one you actually placed.
plugins {
// ... other plugins
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}
dependencies {
// HERE SDK (local AAR).
// This build number is only the one MapConductor is developed against —
// use the file name of the AAR you downloaded.
implementation(
files("${rootProject.projectDir}/libs/heresdk-explore-android-4.26.5.0.299343.aar")
)
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.2.0"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:for-here")
}Wire the manifest and the credentials
HERE uses a pair — an ID and a secret. Both go through placeholders.
<manifest>
<!-- Add internet and location permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application>
<!-- HERE Access Key ID -->
<meta-data
android:name="HERE_ACCESS_KEY_ID"
android:value="${HERE_ACCESS_KEY_ID}" />
<!-- HERE Access Key Secret -->
<meta-data
android:name="HERE_ACCESS_KEY_SECRET"
android:value="${HERE_ACCESS_KEY_SECRET}" />
</application>
</manifest>HERE_ACCESS_KEY_ID=your_actual_here_access_key_id HERE_ACCESS_KEY_SECRET=your_actual_here_access_key_secret
VERIFY
What you should see
The setup is complete when the HERE map renders.
@Composable
fun TestHere(modifier: Modifier = Modifier) {
val mapState = rememberHereMapViewState(
cameraPosition = MapCameraPosition(
position = GeoPoint(35.6762, 139.6503),
zoom = 12.0,
),
)
// If the map appears, the setup is correct.
HereMapView(modifier = modifier, state = mapState)
}Map designs
HereMapDesign maps onto HERE's map schemes — day/night pairs plus purpose-built styles.
Troubleshooting
The map never loads
- Check the access key ID and secret in secrets.properties.
- Confirm the key is still active.
Gradle cannot find the AAR
- Check the AAR is in libs/.
- Make sure the file name matches build.gradle.kts exactly, version number included.
The build fails
- Check that the map SDK coordinates and version match what your version catalog declares.
- Make sure the repository is declared in settings.gradle.kts — with repositoriesMode set to FAIL_ON_PROJECT_REPOS, per-module repositories blocks are ignored.
- If several map SDKs are present at once, look for dependency clashes with ./gradlew :app:dependencies.
Next
Once HereMapView renders, overlays go on through the same shared API as every other provider.