Immer wenn ich versuche, die Karte zu initialisieren, erhalte ich immer die Meldung "error UNKNOWN".FEHLER: Karte mit Fehler kann nicht initialisiert werden UNKNOWN
Ich habe versucht, die Beispiele von HIER, aber ich bekomme den gleichen Fehler auf allen von ihnen. Also machte ich eine sehr einfache und saubere Anwendung mit dem einzigen Zweck, die Karte zu laden. Es funktioniert immer noch nicht und ich kann es nicht beschreiben.
Ich benutze Android, versuchen, Version 4.4 (KitKat) zu zielen. Ich verwende das Premium SDK (während der 90-Tage-Testversion). Ich habe den App-Schlüssel, den Code und den Lizenzschlüssel jetzt viele Male verifiziert. Sie sind absolut richtig.
Der registrierte Paketname ist
com.example.workywork
aber im Manifest ich habe:
package="com.example.workywork.testherepremium"
(Es soll ein Test sein, also nichts dagegen, die Paketnamen :)) Ich denke, es ist richtig, da sie nach Paketnamen gefragt haben, nicht nach Paketname + Projektname. Hier
ist der Code aus meiner einfachen Anwendung:
Build.Gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.example.workywork.testherepremium"
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation (name: 'HERE-sdk', ext: 'aar')
implementation 'com.vividsolutions:jts:1.13'
implementation 'com.google.code.gson:gson:2.8.0'
}
Aktivität Layout:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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="com.example.workywork.testherepremium.MainActivity">
<fragment
class="com.here.android.mpa.mapping.MapFragment"
android:id="@+id/mapfragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.constraint.ConstraintLayout>
Aktivität
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.here.android.mpa.common.GeoCoordinate;
import com.here.android.mpa.common.OnEngineInitListener;
import com.here.android.mpa.mapping.Map;
import com.here.android.mpa.mapping.MapFragment;
public class MainActivity extends AppCompatActivity {
MapFragment mapFragment;
Map map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.mapfragment);
mapFragment.init(new OnEngineInitListener() {
@Override
public void onEngineInitializationCompleted(OnEngineInitListener.Error error) {
if (error == Error.NONE) {
map = mapFragment.getMap();
map.setCenter(new GeoCoordinate(49.259149, -123.008555),
Map.Animation.LINEAR);
map.setZoomLevel(13.2);
} else {
Toast.makeText(getApplicationContext(),"ERROR: Cannot initialize Map with error " + error,
Toast.LENGTH_LONG).show();
Log.e("mymsg", error.getStackTrace());
Log.e("mymsg", error.getDetails());
}
}
});
}
}
AndroidManifest.xml
...
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:hardwareAccelerated="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!--Developers should put application credentials here.To obtain them, please register the application
at https://developer.here.com/develop/mobile-sdks-->
<meta-data android:name="com.here.android.maps.appid" android:value="-- app id --"/>
<meta-data android:name="com.here.android.maps.apptoken" android:value="-- app token --"/>
<meta-data android:name="com.here.android.maps.license.key" android:value="-- license --" />
<service
android:name="com.here.android.mpa.service.MapService"
android:label="HereMapService"
android:process="global.Here.Map.Service.v3"
android:exported="true">
<intent-filter>
<action android:name="com.here.android.mpa.service.MapService.v3">
</action>
</intent-filter>
</service>
</application>
Ich habe auch versucht
android:process="global.Here.Map.Service.v2"
mit
android:name="com.here.android.mpa.service.MapService"
oder
android:name="com.here.android.mpa.service.MapService.v2"
oder jeder anderen solchen Kombination zu verwenden.
Was fehlt mir?
Wie Sie sehen können, habe ich schon seit ein paar Tagen damit zu kämpfen;) Vielen Dank für Ihre Hilfe. Es wird sehr geschätzt.
Vielen Dank für Ihre schnelle Antwort. Ich ging davon aus, aber es funktionierte perfekt mit dem grundlegenden SDK. Ich werde heute einen anderen Ansatz versuchen und die Ergebnisse veröffentlichen. –
Nochmals vielen Dank. Ich habe es schließlich geschafft, es zum Laufen zu bringen. Für alle von uns, die zwischen Paket- und Projektnamen unterscheiden, muss der registrierte Paketname den Projektnamen enthalten. In meinem Fall 'com.example.workywork.testherepremium' Der seltsamste Teil ist, dass es perfekt mit dem Basic SDK arbeitete, auch wenn der registrierte Paketname offensichtlich falsch war. –