當我在Android Lollipop中啓動它時,發現了一個在我的應用程序中的錯誤。 logcat的說:Map-Fragment(v2)Nullpointer(在Lollipop下的問題?)
java.lang.NullPointerException:
Attempt to invoke virtual method 'com.google.android.gms.maps.GoogleMap.
com.google.android.gms.maps.MapFragment.getMap()' on a null object reference
此錯誤僅在運行Android Lollipop所示,確切相同應用在其他設備沒有問題,運行*。
下面是代碼:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/map_side_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/BlueGreyL3"
android:orientation="horizontal"
android:weightSum="100">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/map_margin_left_24dp"
android:layout_marginStart="@dimen/map_margin_left_24dp"
android:layout_weight="8"
android:orientation="vertical">
<!-- MAP -->
<fragment
android:id="@+id/location_map"
class="com.google.android.gms.maps.MapFragment"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
<!-- Ads -->
<LinearLayout
android:id="@+id/linlay_wrb"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
</LinearLayout>
</RelativeLayout>
的谷歌地圖V2片段在我LocationFragments.java
類通過調用
// View
try {
mView = inflater.inflate(R.layout.location_fragment, container, false);
sMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.location_map)).getMap();
mSideHolder = (LinearLayout) mView.findViewById(R.id.map_side_holder);
加載我用AndroidStudio所以這裏是build.gradle
:
android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
defaultConfig {
minSdkVersion 15
targetSdkVersion 21
}
[...]
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v13:21.0.0'
compile 'com.android.support:support-v4:21.0.0'
compile 'com.google.android.gms:play-services:5.0.89'
}
和清單:
<!-- Google Play -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
<!-- Maps -->
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value=""/>
我沒有得到任何想法,我做了什麼錯..是否有可能,這個問題是由棒棒糖本身引起的?
由於提前,
馬丁
*測試設備:
- 的HTC One M8 - 4.4.4(GPE/API 19) - >工作
- Samsung S4 Mini - 4.4.2(CM11/API 19) - >作品
- Samsung S2 - 4.0.3(ICS/API 15) - >工作
- HTC一個M8 - 5.0(LL/API 20) - >錯誤而載入地圖
- 的Nexus 5 - 5.0(LL/API 20) - >錯誤而載入地圖
嘗試了'getMap'代碼移動到'onResume' – 2014-12-05 13:08:03
作品!非常感謝你,保存了我的週末;) 但是爲什麼呢?通過ART實例化Maps Fragment並不像Dalvik那麼快嗎? 如果你想我會接受你的答案。 – 2014-12-05 13:20:25
很高興幫助:)我盡我最大的努力來解釋我真的不知道我的答案LOL – 2014-12-05 13:29:42