java - API key 错误

标签 java android google-maps-android-api-2

大家好,我正在开发一个应用程序,它在其中一个 Activity 中显示 map 和 TextView 。但是当我运行该 Activity 时,应用程序停止运行并抛出此消息:

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) 

我在 list 中声明了 key ,并且还尝试使用新的 api 来更改 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

这是我的 list :

<?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 一起使用,但仍然无法正常工作。 我在互联网上看到了很多这种情况,但给出的解决方案都不能解决这个问题。我希望你能发现我做错了什么。提前致谢

最佳答案

您似乎已将 android:name 属性中的 API_KEY 替换为实际的 api key ,这是错误的。

所以,替换它:

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

关于java - API key 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44684614/

相关文章:

java - 无法创建谷歌地图 fragment

java - 在 JPA 中为非规范化表定义一个实体(充当聚合器)

java.lang.IllegalStateException : Couldn't create Engine

java - 使用HttpServletResponse.setStatus后如何获取状态

java - 如何修复泛型类型参数的运行时 "Null Pointer Exception"

java - Android 示例屏幕及其源 xml 代码

android - 带有 CameraUpdateFactory.newLatLngBounds 的 moveCamera 崩溃

android - 空指针异常 : GestureDetector. onTouchEvent for android for ICS 4.0

android - GoogleAuthUtil.getToken() 没有返回

java - 我在哪里可以找到 google-play-services_lib.jar?