Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌地图只显示缩放按钮,而不显示地图,并显示类似';GC#u表示已释放的分配';显示地图时_Android_Google Maps_Android Fragments - Fatal编程技术网

Android 谷歌地图只显示缩放按钮,而不显示地图,并显示类似';GC#u表示已释放的分配';显示地图时

Android 谷歌地图只显示缩放按钮,而不显示地图,并显示类似';GC#u表示已释放的分配';显示地图时,android,google-maps,android-fragments,Android,Google Maps,Android Fragments,我想在我的应用程序中嵌入谷歌地图 但应用程序只是显示缩放按钮,我看不到地图。 当我切换到其他应用程序并切换回时。地图显示 我想知道我的应用程序有什么问题?如何解决这个问题 我就是这么做的: public final static int HANDLER_SHOW_GOOGLEMAP = 4; public final static int HANDLER_HIDE_GOOGLEMAP = 5; private final int ENUM_GOOGLE_FRAGMENT_ADD = 0; pr

我想在我的应用程序中嵌入谷歌地图

但应用程序只是显示缩放按钮,我看不到地图。 当我切换到其他应用程序并切换回时。地图显示

我想知道我的应用程序有什么问题?如何解决这个问题

我就是这么做的:

public final static int HANDLER_SHOW_GOOGLEMAP = 4;
public final static int HANDLER_HIDE_GOOGLEMAP = 5;

private final int ENUM_GOOGLE_FRAGMENT_ADD = 0;
private final int ENUM_GOOGLE_FRAGMENT_SHOW = 1;
private final int ENUM_GOOGLE_FRAGMENT_HIDE = 2;

private WeakReference<MyActivity> mActivity;
private LinearLayout m_mapLayout;
private MapFragment m_mapFragment;

public MyHandler(MyActivity activity) {
    super(activity);
    this.mActivity = new WeakReference<MyActivity>(activity);
    // TODO Auto-generated constructor stub
}

@Override
public void handleMessage(Message msg) {
    // TODO Auto-generated method stub
    super.handleMessage(msg);
    switch (msg.what) {
    case HANDLER_SHOW_GOOGLEMAP:
        showGoogleMap();
        break;
    case HANDLER_HIDE_GOOGLEMAP:
        hideGoogleMap();
        break;
    }
}

private void showGoogleMap() {
    initGoogleMap();
    m_mapLayout.setVisibility(View.VISIBLE);
    googleMapFragmentTransaction(ENUM_GOOGLE_FRAGMENT_SHOW);

    MyActivity theActivity = this.mActivity.get();
    FrameLayout viewGroup = (FrameLayout) theActivity.getWindow()
            .getDecorView();
    if (null == viewGroup.findViewById(m_mapLayout.getId())) {
        viewGroup.addView(m_mapLayout);
    }
}

private void hideGoogleMap() {
    initGoogleMap();
    m_mapLayout.setVisibility(View.INVISIBLE);
    googleMapFragmentTransaction(ENUM_GOOGLE_FRAGMENT_HIDE);

    MyActivity theActivity = this.mActivity.get();
    FrameLayout viewGroup = (FrameLayout) theActivity.getWindow()
            .getDecorView();
    if (null != viewGroup.findViewById(m_mapLayout.getId())) {
        viewGroup.removeView(m_mapLayout);
    }
}

private void initGoogleMap() {
    if (null != m_mapLayout) {
        return;
    }

    m_mapFragment = MapFragment.newInstance();

    MyActivity theActivity = this.mActivity.get();
    m_mapLayout = new LinearLayout(theActivity);

    LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, 480);

    m_mapLayout.setLayoutParams(lp);
    m_mapLayout.setId(100011);
    m_mapLayout.setY(200);

    googleMapFragmentTransaction(ENUM_GOOGLE_FRAGMENT_ADD);
}

private void googleMapFragmentTransaction(int enumTransaction) {
    MyActivity theActivity = this.mActivity.get();

    FragmentManager fragmentManager = theActivity.getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager
            .beginTransaction();

    switch (enumTransaction) {
    case ENUM_GOOGLE_FRAGMENT_ADD:
        fragmentTransaction.add(m_mapLayout.getId(), m_mapFragment);
        break;
    case ENUM_GOOGLE_FRAGMENT_SHOW:
        fragmentTransaction.show(m_mapFragment);
        break;
    case ENUM_GOOGLE_FRAGMENT_HIDE:
        fragmentTransaction.hide(m_mapFragment);
        break;
    default:
        break;
    }

    fragmentTransaction.commit();
}
public final static int HANDLER\u SHOW\u GOOGLEMAP=4;
公共最终静态整数处理程序\u HIDE\u GOOGLEMAP=5;
私有最终整数枚举\谷歌\片段\添加=0;
私有最终整数枚举\谷歌\片段\显示=1;
私有final int ENUM_GOOGLE_FRAGMENT_HIDE=2;
私人弱引用活动;
私人线路布局图;
私有MapFragment m_MapFragment;
公共MyHandler(MyActivity活动){
超级(活动);
this.mActivity=新的WeakReference(活动);
//TODO自动生成的构造函数存根
}
@凌驾
公共无效handleMessage(消息消息消息){
//TODO自动生成的方法存根
超级handleMessage(msg);
开关(msg.what){
案例处理程序\u显示\u谷歌地图:
showGoogleMap();
打破
案例处理程序\u隐藏\u谷歌地图:
hidegologlemap();
打破
}
}
私有void showGoogleMap(){
initGoogleMap();
m_mapLayout.setVisibility(View.VISIBLE);
googleMapFragmentTransaction(枚举GOOGLE片段显示);
MyActivity theActivity=this.macActivity.get();
FrameLayout视图组=(FrameLayout)theActivity.getWindow()
.getDecorView();
if(null==viewGroup.findViewById(m_mapLayout.getId()){
添加视图(m_mapLayout);
}
}
私有void hidegologlemap(){
initGoogleMap();
m_mapLayout.setVisibility(视图不可见);
googleMapFragmentTransaction(枚举谷歌片段隐藏);
MyActivity theActivity=this.macActivity.get();
FrameLayout视图组=(FrameLayout)theActivity.getWindow()
.getDecorView();
if(null!=viewGroup.findViewById(m_mapLayout.getId()){
viewGroup.removeView(m_mapLayout);
}
}
私有void initGoogleMap(){
如果(空!=m_mapLayout){
返回;
}
m_mapFragment=mapFragment.newInstance();
MyActivity theActivity=this.macActivity.get();
m_mapLayout=新的线性布局(活动);
LayoutParams lp=新的LayoutParams(LayoutParams.MATCH_父项,480);
m_mapLayout.setLayoutParams(lp);
m_mapLayout.setId(100011);
m_mapLayout.setY(200);
googleMapFragmentTransaction(枚举\谷歌\片段\添加);
}
私有void googleMapFragmentTransaction(int enumTransaction){
MyActivity theActivity=this.macActivity.get();
FragmentManager FragmentManager=活动。getFragmentManager();
FragmentTransaction FragmentTransaction=fragmentManager
.beginTransaction();
交换机(枚举事务){
案例枚举\u谷歌\u片段\u添加:
fragmentTransaction.add(m_mapLayout.getId(),m_mapFragment);
打破
案例列举谷歌片段展示:
fragmentTransaction.show(m_mapFragment);
打破
案例枚举\u谷歌\u片段\u隐藏:
fragmentTransaction.hide(m_mapFragment);
打破
违约:
打破
}
fragmentTransaction.commit();
}
我没有足够的声誉上传图片,这是图片的链接:

GC部分很常见,可以通过以下方式进行过滤:^(?。*(nativeGetEnabledTags)|(GC|)).$on message(LogCat过滤器设置)@cYrixmorten:谢谢您的回答,您知道如何解决空地图的问题吗?GoogleMapOptions=new GoogleMapOptions();选项。zOrderOnTop(true);m_mapFragment=mapFragment.newInstance(选项);通过使用这些代码,我最终成功地显示了地图。