我要去使用Android google maps v2用android emulator/android studio 0.4.0.其中一个要求是放入google-play-services_lib版本低于/等于emulatorlevel的项目.我的模拟器可以使用api lv 17.问题是,如何下载google-play-services_lib比下载的旧版本android sdk manager?
我在Android 4.x版本上使用Google Maps API v2很长时间没有问题.现在我在我的Nexus设备(5和7)上安装了最新的Lollipop版本,试图实现应用程序.
我想指出KitKiat上的一切都很好,我所描述的问题只在Lollipop上弹出.
在我的XML源代码中,我正在使用MapFragment(Google Play Services库版本6.1.11).
<fragment android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.MapFragment"/>
Run Code Online (Sandbox Code Playgroud)
在Java代码中,我重写OnPause()方法来到达map:
GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
Run Code Online (Sandbox Code Playgroud)
在这一行,它抛出NullPointerException.在调试器应用程序中能够找到片段,但它无法返回GoogleMap.我也试过使用MapView.它也抛出null.对我来说最奇怪的事情是地图加载没有问题的应用程序本身,但在代码我无法达到它使用它.
android google-play-services google-maps-android-api-2 android-5.0-lollipop
我想把Map放在一个片段里面.我正在粘贴我正在使用的代码
XML
<fragment
android:id="@+id/contactFrag_F_map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="200dp"/>
Run Code Online (Sandbox Code Playgroud)
下面是我声明的片段名称
public class ContactFragment extends MapFragment
Run Code Online (Sandbox Code Playgroud)
下面是我初始化地图的方法
private void initilizeMap() {
if (googleMap == null) {
if (googleMap == null) {
googleMap = ((MapFragment) getActivity().getFragmentManager().findFragmentById(
R.id.contactFrag_F_map)).getMap();
}
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getActivity(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个方法被召集了 onCreateView
错误是
Caused by: 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
Run Code Online (Sandbox Code Playgroud)
请帮忙解决这个问题.问题在于以下部分
if (googleMap …Run Code Online (Sandbox Code Playgroud) 更新 我读了很多主题,但没有任何帮助,或者我不明白该怎么做.我得到null,我不知道为什么.我正在学习,所以请帮助我.
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.SupportMapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object reference
at com.example.text.fragments.MapFragment.initilizeMap(MapFragment.java:52)
at com.example.text.fragments.MapFragment.onViewCreated(MapFragment.java:46)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:971)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1499)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:488)
at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
at android.support.v4.view.ViewPager$3.run(ViewPager.java:249)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:792)
at android.view.Choreographer.doCallbacks(Choreographer.java:596)
at android.view.Choreographer.doFrame(Choreographer.java:556)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:778)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:155)
at android.app.ActivityThread.main(ActivityThread.java:5696)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
Run Code Online (Sandbox Code Playgroud)
这是我实现getMap的片段
public class MapFragment extends Fragment implements OnMapReadyCallback{
private GoogleMap googleMap;
/**
* function to load map. If …Run Code Online (Sandbox Code Playgroud)