我的MapFragment
有xml文件<?xml version="1.0" encoding="utf-8"?>
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
和片段使用它:
public class CallistoMapFragment extends MapFragment {
private GoogleMap mMap;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.map_fragment, null);
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
setUpMap();
return v;
}
private void setUpMap() {
mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title(
"Marker"));
}
} 在尝试编译时获取错误
11-20 15:31:15.343:E / AndroidRuntime(10705):android.view.InflateException:二进制XML文件行#6:错误膨胀类片段
Android清单中的API密钥是对的。怎么了?
答案 0 :(得分:4)
使用:
XML:
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
/>
类
GoogleMap mMap;
SupportMapFragment mapFrag;
Now set it:
if (mMap == null) {
mapFrag= (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
mMap = mapFrag.getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
// The Map is verified. It is now safe to manipulate the map.
}
}
还要在清单文件中添加此元标记。
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="myApiKey"/>
答案 1 :(得分:1)
在我的情况下,问题出在我的元数据标签自动放置在应用程序标签之外,如下所示。
<application android:label="My.Mobile"></application>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="myApiKey"/>
在将元数据标签放入应用程序标签问题后消失了:
<application android:label="My.Mobile">
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="myApiKey"/>
</application>
答案 2 :(得分:0)
尝试:在应用标记
中的清单中添加此内容<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
答案 3 :(得分:0)
将项目参考Google Play服务添加到您的项目中......
答案 4 :(得分:0)
请参阅本文档中的this link分步过程。
答案 5 :(得分:0)
如果依赖关系显示警告或错误,那么您必须将其更改为最新状态,如...
变化
compile 'com.google.android.gms:play-services-maps:6.5.87'
到
compile 'com.google.android.gms:play-services-maps:8.4.0'
它为我工作。
答案 6 :(得分:0)
尝试了将近 1 天后,我在 build.xml 中发现了一个问题。问题在于我的库版本...
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1' <-
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.legacy:legacy-support-v4:1.0.0' <-
implementation 'androidx.navigation:navigation-fragment:2.2.2' <-
implementation 'androidx.navigation:navigation-ui:2.2.2' <-
implementation testImplementation 'junit:junit:4.+'
implementation androidTestImplementation 'androidx.test.ext:junit:1.1.2'
implementation androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'com.google.android.gms:play-services-maps:16.0.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'