2017-06-21 274 views
0

大家好我正在开发一个应用程序,它在其中一个活动中显示地图和textView。但是当我运行该活动的应用程序停止运行,并抛出这条消息: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)  

我声明清单中的关键,我也试图用一个新的改变API,但我得到了同样的错误。

我发现这行有趣:

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 

这是我的清单:

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

我试图把该行我与之前报价api和sti我不工作。 我在互联网上看到了很多,但没有给出的解决方案可以解决这个问题。我希望你能找到我做错了什么。在此先感谢

回答

1

看起来你已经更换API_KEY与在android:name财产实际API密钥,这是不对的。

所以,更换此:

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

与此:

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

哦谢谢!在过去的24小时里,这样一个愚蠢的错误让我疯狂。现在正在工作。 –

-1

您需要添加一行:

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

<application></application>标签之间,作为错误说。 当然,您需要用您的API密钥替换“您的API密钥”。如果你不知道你的API密钥,检查this