Google maps 无法在颤振时全屏加载地图视图
我在全屏加载谷歌地图时遇到了一个问题。 我遵循了pub.dartland.org中的所有文档以查看地图: 在我的AndroidManifest.xml中,我有:Google maps 无法在颤振时全屏加载地图视图,google-maps,android-activity,flutter,Google Maps,Android Activity,Flutter,我在全屏加载谷歌地图时遇到了一个问题。 我遵循了pub.dartland.org中的所有文档以查看地图: 在我的AndroidManifest.xml中,我有: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <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_COARSE_LOCATION"/>
还增加了:
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="your_api_key"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
当然,apiKey已更改,而且:
<activity android:name="com.apptreesoftware.mapview.MapActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/>
我还将kotlin依赖项添加到build.graddle中。
现在我可以在设备上看到staticUri映射,很好,但是当我点击此映射以全屏显示时,应用程序崩溃,出现以下错误:
D/AndroidRuntime( 4373): Shutting down VM
E/AndroidRuntime( 4373): FATAL EXCEPTION: main
E/AndroidRuntime( 4373): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.apptreesoftware.mapview.MapActivity}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class fragment
E/AndroidRuntime( 4373): Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class fragment
E/AndroidRuntime( 4373): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
E/AndroidRuntime( 4373): 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
D/AndroidRuntime(4373):关闭虚拟机
E/AndroidRuntime(4373):致命异常:主
E/AndroidRuntime(4373):java.lang.RuntimeException:无法启动活动组件信息{com.apptreesoftware.mapview.MapActivity}:android.view.InflateException:二进制XML文件行#2:二进制XML文件行#2:膨胀类片段时出错
E/AndroidRuntime(4373):由以下原因引起:android.view.InflateException:二进制XML文件行#2:二进制XML文件行#2:膨胀类片段时出错
E/AndroidRuntime(4373):由以下原因引起:android.view.InflateException:二进制XML文件行#2:膨胀类片段时出错
E/AndroidRuntime(4373):原因:java.lang.RuntimeException:未找到API密钥。检查AndroidManifest.xml元素中的
我试图加上:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="xxxxxxxxxxxxxxx"/>
但同样的问题,也许有人有想法
编辑:
以下是我的AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<application
android:name="io.flutter.app.FlutterApplication"
android:label="my-app"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<meta-data
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="true" />
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="XXXXXXXXXXXXXX"/>
<!-- <meta-data android:name="com.google.android.geo.API_KEY" android:value="XXXXXXXXXXXXXXXX"/> -->
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="com.apptreesoftware.mapview.MapActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/>
</application>
</manifest>
好的,您需要将google地图元数据移到您的
活动
标记之外,如下所示:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<application
android:name="io.flutter.app.FlutterApplication"
android:label="my-app"
android:icon="@mipmap/ic_launcher">
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="XXXXXXXXXXXXXX"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<meta-data
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="true" />
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="com.apptreesoftware.mapview.MapActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/>
</application>
</manifest>
总之,元数据与父组件相关,因此在本例中,您需要所有应用程序的元数据,而不仅仅是一个活动:)。您可以粘贴您的androidmanifest.xml文件吗?Post已使用androidmanifest.xml文件编辑,现在可以使用了,但不知道为什么,但我可能应该学习更多关于android开发的知识,而不是直接进入flutter开发。谢谢!我在回答中添加了更多描述:)