2017-06-21 323 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