API 键错误

Error with API Key

大家好我正在开发一个应用程序,它在其中一个活动中显示地图和文本视图。但是当我 运行 activity 应用程序停止 运行ning 并抛出此消息时:

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.access0(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.access0(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.access0(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 放在一起,但仍然无法正常工作。 我在互联网上看到了很多,但是 none 给出的解决方案可以解决这个问题。我希望你能找到我做错了什么。提前致谢

您需要添加以下行:

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

<application></application> 标签之间,如错误所述。 当然,您需要将 "your API key" 替换为 api 密钥。如果您不知道 api 密钥,请检查 this

您似乎已将 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*****************"/>