2017-11-29 2 views
0

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.

Antwort

0

Die applicationId muss genau mit dem registrierten Namen übereinstimmen (in Ihrem Fall com.example.workywork). Andernfalls kann ich kein Problem mit dem von Ihnen geposteten Code feststellen.

Sie können nach dieser Anleitung versuchen: Creating a Simple Application Using the HERE SDK

+0

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. –

+0

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. –

Verwandte Themen