开发者社区> 问答> 正文

冬天雪地 跪地求大侠帮忙看下 android 百度地图调式 为什么会报错?报错

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.bus);  
        this.app = ((MyApplication)getApplication());
        if (this.app.mBMapMan == null)
        {
          this.app.mBMapMan = new BMapManager(getApplication());
          this.app.mBMapMan.init(this.app.mStrKey, new MyApplication.MyGeneralListener());
        }
      
        this.app.mBMapMan.start();
        this.db = new DatabaseHelper(this);
        findView();
        initView();
        local();
        this.mkSearch = new MKSearch();
        this.mkSearch.init(this.app.mBMapMan, new MKSearchListener() {

			@Override
			public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void onGetDrivingRouteResult(MKDrivingRouteResult arg0,
					int arg1) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void onGetPoiDetailSearchResult(int arg0, int arg1) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void onGetRGCShareUrlResult(String arg0, int arg1) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void onGetTransitRouteResult(MKTransitRouteResult arg0,
					int arg1) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void onGetWalkingRouteResult(MKWalkingRouteResult arg0,
					int arg1) {
				// TODO Auto-generated method stub
				
			}
 
        });
      }
package com.zjgbus.util.widget;

import android.app.Application;
import android.util.Log;
import android.widget.Toast;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKGeneralListener;
import java.util.List;

public class MyApplication extends Application
{
  static MyApplication mDemoApp;
  public BMapManager mBMapMan = null;
  public String mStrKey = "33ADDE9544E7F53D9AAEF06F328A75C21E79EA8A";
  boolean m_bKeyRight = true;	// 授权Key正确,验证通过

  public void onCreate() {
		Log.v("BMapApiDemoApp", "onCreate");
		mDemoApp = this;
		mBMapMan = new BMapManager(this);
		boolean isSuccess = mBMapMan.init(this.mStrKey, new MyGeneralListener());
		// 初始化地图sdk成功,设置定位监听时间
		if (isSuccess) {
		    mBMapMan.getLocationManager().setNotifyInternal(10, 5);
		}
		else {
		    // 地图sdk初始化失败,不能使用sdk
		}
		super.onCreate();
	}

	@Override
	//建议在您app的退出之前调用mapadpi的destroy()函数,避免重复初始化带来的时间消耗
	public void onTerminate() {
		// TODO Auto-generated method stub
		if (mBMapMan != null) {
			mBMapMan.destroy();
			mBMapMan = null;
		}
		super.onTerminate();
	}

  public static class MyGeneralListener
    implements MKGeneralListener
  {
    public void onGetNetworkState(int paramInt)
    {
      Log.d("MyGeneralListener", "onGetNetworkState error is " + paramInt);
      Toast.makeText(MyApplication.mDemoApp.getApplicationContext(), "您的网络出错啦!", 1).show();
    }

    public void onGetPermissionState(int paramInt)
    {
      Log.d("MyGeneralListener", "onGetPermissionState error is " + paramInt);
      if (paramInt == 300)
      {
        Toast.makeText(MyApplication.mDemoApp.getApplicationContext(), "请在BMapApiDemoApp.java文件输入正确的授权Key!", 1).show();
        MyApplication.mDemoApp.m_bKeyRight = false;
      }
    }
  }
}

展开
收起
爱吃鱼的程序员 2020-06-22 22:16:12 956 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
    init里面有问题呗~这是百度的这难道有问题?》报的错误信息根本没有定位到你说的那个位置是NPE。 你debug 看看 BusActivity.java的186行。是什么对象是空的。 我也知道啊大家那个是百度地图的方法this.mkSearch.init(this.app.mBMapMan,newMKSearchListener()

    最新发现配置文件里的

     竟然报333333333333333,难道SDK初始化也失败了。。。

    publicvoidonCreate(){mDemoApp=this;mBMapMan=newBMapManager(this);booleanisSuccess=mBMapMan.init(this.mStrKey,newMyGeneralListener());//初始化地图sdk成功,设置定位监听时间if(isSuccess){Log.v("BMapApiDemoApp","onCreate");System.out.println("222222222222222222222");mBMapMan.getLocationManager().setNotifyInternal(10,5);}else{//地图sdk初始化失败,不能使用sdkSystem.out.println("3333333333333333333333333333");}super.onCreate();}

    你要在实现那个接口里修改方法:你看看这里: http://blog.csdn.net/OnlyOneCoder/article/details/8469926改这个: onGetPoiResult 还有 onGetPoiDetailSearchResult这个。。。试试看看呢什么意思,小弟不明白目前发现mBMapMan.init(this.mStrKey,newMyGeneralListener());这个返回竟然也是flase你看看是不是你授权KEY有问题哦

    引用来自“xxmlli”的答案

    你看看是不是你授权KEY有问题哦哥们,我也不知道了。你只能debug慢慢测试了。
    2020-06-22 22:16:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
AIOps-百度的思考与实践 立即下载
百度外卖从IDC到云端服务迁移历程 立即下载
百度研发工具集的应用实践——打造持续交付路上的“三堵墙” 立即下载