2017-06-21 1 views
0

Bonjour à tous Je développe une application qui, dans l'une des activités, affiche une carte et un textView. Mais quand je lance cette activité l'application cesse de courir et jette ce message:Erreur avec la clé API

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)  

Je déclarai la clé dans le manifeste et j'ai aussi essayé de changer le api avec un nouveau, mais je reçois la même erreur.

Je trouve cette ligne intéressante:

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 

Ceci est mon manifeste:

<?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"/> 

i essayé de mettre cette ligne i citais avant la api et sti Je ne travaille pas. Je l'ai beaucoup vu sur internet mais aucune des solutions proposées ne résoudrait ça. J'espère que vous pouvez trouver ce que je fais mal. Merci à l'avance

Répondre

1

Il semble que vous ayez remplacé API_KEY par votre clé API réelle dans la propriété android:name, ce qui est incorrect.

Ainsi, remplacer:

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

avec ceci:

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

Oh Merci! Une telle erreur idiote me rend fou depuis 24 heures. Ça marche maintenant. –

-1

Vous devez ajouter la ligne:

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

entre les balises <application> et </application>, comme l'erreur dit. Bien sûr, vous devez remplacer "votre clé API" par votre clé API. Si vous ne connaissez pas votre clé api, cochez this