2017-06-21 4 views
0

Hallo an alle Ich entwickle eine App, die in einer der Aktivitäten eine Karte und ein TextView anzeigt. Aber wenn ich diese Tätigkeit laufen die App nicht mehr läuft und diese Nachricht werfen:Fehler mit API-Schlüssel

06-21 16:14:09.018 17470-17470/chtecnologies.app0 E/AndroidRuntime: FATAL EXCEPTION: main 
                   java.lang.RuntimeException: Unable to start activity ComponentInfo{chtecnologies.app0/chtecnologies.app0.MapActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class fragment 
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2092) 
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117) 
                    at android.app.ActivityThread.access$700(ActivityThread.java:134) 
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218) 
                    at android.os.Handler.dispatchMessage(Handler.java:99) 
                    at android.os.Looper.loop(Looper.java:137) 
                    at android.app.ActivityThread.main(ActivityThread.java:4867) 
                    at java.lang.reflect.Method.invokeNative(Native Method) 
                    at java.lang.reflect.Method.invoke(Method.java:511) 
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007) 
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774) 
                    at dalvik.system.NativeStart.main(Native Method) 
                   Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class fragment 
                    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:316) 
                    at android.app.Activity.setContentView(Activity.java:1901) 
                    at chtecnologies.app0.MapActivity.onCreate(MapActivity.java:66) 
                    at android.app.Activity.performCreate(Activity.java:5047) 
                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056) 
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)  
                    at android.app.ActivityThread.access$700(ActivityThread.java:134)  
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218)  
                    at android.os.Handler.dispatchMessage(Handler.java:99)  
                    at android.os.Looper.loop(Looper.java:137)  
                    at android.app.ActivityThread.main(ActivityThread.java:4867)  
                    at java.lang.reflect.Method.invokeNative(Native Method)  
                    at java.lang.reflect.Method.invoke(Method.java:511)  
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)  
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)  
                    at dalvik.system.NativeStart.main(Native Method)  
                   Caused by: java.lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.geo.API_KEY" android:value="your API key"/> is in the <application> element of AndroidManifest.xml 
                    at com.google.maps.api.android.lib6.drd.q.b(:com.google.android.gms.DynamiteModulesB:39) 
                    at com.google.maps.api.android.lib6.auth.e.a(:com.google.android.gms.DynamiteModulesB:12) 
                    at com.google.android.gms.maps.internal.CreatorImpl.a(:com.google.android.gms.DynamiteModulesB:121) 
                    at com.google.android.gms.maps.internal.CreatorImpl.newMapFragmentDelegate(:com.google.android.gms.DynamiteModulesB:25) 
                    at com.google.android.gms.maps.internal.g.onTransact(:com.google.android.gms.DynamiteModulesB:35) 
                    at android.os.Binder.transact(Binder.java:326) 
                    at sjq.newMapFragmentDelegate(:com.google.android.gms:1) 
                    at com.google.android.gms.maps.internal.CreatorImpl.newMapFragmentDelegate(:com.google.android.gms:1) 
                    at sjp.onTransact(:com.google.android.gms:13) 
                    at android.os.Binder.transact(Binder.java:326) 
                    at com.google.android.gms.internal.zzed.zza(Unknown Source) 
                    at com.google.android.gms.maps.internal.zzf.zzH(Unknown Source) 
                    at com.google.android.gms.maps.SupportMapFragment$zzb.zzwg(Unknown Source) 
                    at com.google.android.gms.maps.SupportMapFragment$zzb.zza(Unknown Source) 
                    at com.google.android.gms.dynamic.zza.zza(Unknown Source) 
                    at com.google.android.gms.dynamic.zza.onInflate(Unknown Source) 
                    at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source) 
                    at android.support.v4.app.Fragment.onInflate(Fragment.java:1225) 
                    at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3511) 
                    at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120) 
                    at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:330) 
                    at android.support.v4.app.BaseFragmentActivityApi14.onCreateView(BaseFragmentActivityApi14.java:39) 
                    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:75) 
                    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
                    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)  
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)  
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)  
                    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)  
                    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:316)  
                    at android.app.Activity.setContentView(Activity.java:1901)  
                    at chtecnologies.app0.MapActivity.onCreate(MapActivity.java:66)  
                    at android.app.Activity.performCreate(Activity.java:5047)  
                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)  
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056)  
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)  
                    at android.app.ActivityThread.access$700(ActivityThread.java:134)  
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218)  
                    at android.os.Handler.dispatchMessage(Handler.java:99)  
                    at android.os.Looper.loop(Looper.java:137)  
                    at android.app.ActivityThread.main(ActivityThread.java:4867)  
                    at java.lang.reflect.Method.invokeNative(Native Method)  
                    at java.lang.reflect.Method.invoke(Method.java:511)  
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)  
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)  
                    at dalvik.system.NativeStart.main(Native Method)  

erklärte ich den Schlüssel im Manifest und ich habe auch versucht die api durch einen neuen zu ändern, aber ich bekomme den gleichen Fehler.

fand ich diese Linie interessant:

Check that <meta-data android:name="com.google.android.geo.API_KEY" android:value="your API key"/> is in the <application> element of AndroidManifest.xml 

Das ist mein Manifest:

<?xml version="1.0" encoding="utf-8"?> 

<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"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".Nuevo"></activity> 
    <activity android:name=".MapActivity"></activity> 
    <meta-data 
     android:name="com.google.android.geo.AIza*****************" 
     android:value="AIza*****************"/> 

    <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 
</application> 

<uses-permission android:name="android.permission.INTERNET"/> 

<permission 
    android:name="chtecnologies.app0.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 

<uses-permission android:name="chtecnologies.app0.permission.MAPS_RECEIVE" /> 

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true"/> 

Ich habe versucht, diese Zeile setzen i, bevor sie mit der zitierte api und sti Ich arbeite nicht. Ich sah das oft im Internet, aber keine der gegebenen Lösungen würde das beheben. Ich hoffe du findest was ich falsch mache. Vielen Dank im Voraus

Antwort

1

Es sieht aus wie Sie API_KEY mit Ihrem tatsächlichen api Schlüssel in der android:name Eigenschaft ersetzt haben, was falsch ist.

So ersetzen diese:

<meta-data 
     android:name="com.google.android.geo.AIza*******************" 
     android:value="AIza*****************"/> 

mit diesem:

<meta-data 
     android:name="com.google.android.geo.API_KEY" 
     android:value="AIza*****************"/> 
+0

Oh Dank! Solch ein dummer Fehler hat mich für die letzten 24 Stunden verrückt gemacht. Es funktioniert jetzt. –

-1

Sie müssen die Zeile hinzufügen:

<meta-data android:name="com.google.android.geo.API_KEY" android:value="your API key"/> 

zwischen den <application> und </application> Tags, wie der Fehler sagt. Natürlich müssen Sie "Ihren API-Schlüssel" mit Ihrem API-Schlüssel ersetzen. Wenn Sie nicht Ihre api Schlüssel kennen, überprüfen this