为了账号安全,请及时绑定邮箱和手机立即绑定

第二节课代码加入后出错

不知道为什么,第一节内容完全正确,但是第二节课代码加上以后,跳到这个页面,每次都闪退回我程序的主界面。提示信息是couldn't find the class 'com.baidu.location.LocationClient',但是我明明引入了啊?谁能解答下。??

正在回答

6 回答

我找到了liblocSDK6a.jar并成功添加了 但是还是不行 还是闪退

0 回复 有任何疑惑可以回复我~

liblocSDK6a.jar包到底在哪里下载啊 找不到啊 真是急死人了 弄了十多天了就是弄不出来.

0 回复 有任何疑惑可以回复我~

我加入了那个liblocSDK6a.so后还是不行反而报错http://img1.sycdn.imooc.com//5779efa20001c9bb10430147.jpg:求解决!!

0 回复 有任何疑惑可以回复我~

不好意思,你能帮忙运一下吗

import com.baidu.location.BDLocation;

import com.baidu.location.BDLocationListener;

import com.baidu.location.LocationClient;

import com.baidu.location.LocationClientOption;

import com.baidu.mapapi.SDKInitializer;

import com.baidu.mapapi.map.BaiduMap;

import com.baidu.mapapi.map.MapStatusUpdate;

import com.baidu.mapapi.map.MapStatusUpdateFactory;

import com.baidu.mapapi.map.MapView;

import com.baidu.mapapi.map.MyLocationData;

import com.baidu.mapapi.model.LatLng;


import android.os.Bundle;

import android.app.Activity;

import android.content.Context;

import android.view.Menu;

import android.view.MenuItem;

import android.view.Window;

import android.widget.Toast;


public class MainActivity extends Activity {

MapView mMapView = null;

private BaiduMap mBaiduMap;

//定位相关

private LocationClient mLocationClient;

private MyLocationListener mLocationListener;

private boolean isFirstIn = true;

private Context context;

@Override

protected void onCreate(Bundle savedInstanceState) 

{

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

//在使用SDK各组件之前初始化context信息,传入ApplicationContext  

        //注意该方法要再setContentView方法之前实现  

        SDKInitializer.initialize(getApplicationContext());//添加包

setContentView(R.layout.activity_main);

this.context = this;


initView();

initLocation();

}

private void initLocation() {

mLocationClient = new LocationClient(this);

mLocationListener = new MyLocationListener();

mLocationClient.registerLocationListener(mLocationListener);

LocationClientOption option = new LocationClientOption();

option.setCoorType("bd09ll");

option.setIsNeedAddress(true);

option.setOpenGps(true);

option.setScanSpan(1000);

mLocationClient.setLocOption(option);

}

private void initView() {

mMapView=(MapView)findViewById(R.id.id_bmapView);

mBaiduMap = mMapView.getMap();

MapStatusUpdate msu=MapStatusUpdateFactory.zoomTo(15.0f);//放大至500米

mBaiduMap.setMapStatus(msu);

}

@Override  

    protected void onDestroy() {  

        super.onDestroy();  

        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  

        mMapView.onDestroy();  

    }  

    @Override  

    protected void onResume() {  

        super.onResume();  

        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  

        mMapView.onResume();  

        }  

    protected void onStart()

{

super.onStart();

// 开启定位

mBaiduMap.setMyLocationEnabled(true);

if (!mLocationClient.isStarted())

mLocationClient.start();

}

    @Override  

    protected void onPause() {  

        super.onPause();  

        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  

        mMapView.onPause();  

        }  

    protected void onStop()

{

super.onStop();


// 停止定位

mBaiduMap.setMyLocationEnabled(false);

mLocationClient.stop();

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

public boolean onOptionsItemSelected(MenuItem item)

{

switch (item.getItemId())

{

case R.id.id_map_common:

mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);

break;


case R.id.id_map_site:

mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);

break;


case R.id.id_map_traffic:

if (mBaiduMap.isTrafficEnabled())

{

mBaiduMap.setTrafficEnabled(false);

item.setTitle("实时交通(off)");

} else

{

mBaiduMap.setTrafficEnabled(true);

item.setTitle("实时交通(on)");

}


         }

return super.onOptionsItemSelected(item);

}

private class MyLocationListener implements BDLocationListener

{


@Override

public void onReceiveLocation(BDLocation location) {

MyLocationData data = new MyLocationData.Builder()//

.accuracy(location.getRadius())//

.latitude(location.getLatitude())//

.longitude(location.getLongitude())//

.build();

mBaiduMap.setMyLocationData(data);

if (isFirstIn)

{

LatLng latLng = new LatLng(location.getLatitude(),

location.getLongitude());

MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);

mBaiduMap.animateMapStatus(msu);

isFirstIn = false;

Toast.makeText(context, location.getAddrStr(),Toast.LENGTH_SHORT).show();

}

}

}

}

看看哪里出错了,谢谢,我都好几天了

0 回复 有任何疑惑可以回复我~
#1

春向东流6663427263

是否已经解决了呢 兄弟 我的代码是跟着视频老师做的 可是就是运行不起来
2016-09-18 回复 有任何疑惑可以回复我~

我的也是这样,下载到手机上就不能运行,第一节可以显示,我还是不行

0 回复 有任何疑惑可以回复我~

现在终于解决了,是要再下载一个locSDK4.2 .JAR引入到项目中去,并右键build path添加。但是我就是不懂,我之前下载百度地图API时明明选择了“定位功能”的。而且项目中也有相应的.so文件(但是没有.jar文件)。 而且编译时也没有红色下划线。只在运行时报错说无法找到LocationClient的类。希望有同样问题的同学,可以借鉴。(PS:我困惑并调试了整整一天)

0 回复 有任何疑惑可以回复我~
#1

九天悬日

locSDK4.2 .JAR是什么?在哪儿下载,能说一下吗?谢谢
2016-04-19 回复 有任何疑惑可以回复我~
#2

qq_壞壞微笑_0 回复 九天悬日

在CSDN上下载了locSDK_4.2.jar,将locSDK4.2.jar文件拷贝到工程的libs目录下,并在工程属性->Java Build Path->Libraries中选择“Add JARs”,选定locSDK4.2.jar,确定后返回。这样就可以导入(import) com.baidu.location.XXX相关的包了。
2016-08-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
百度地图在Android中的使用
  • 参与学习       38541    人
  • 解答问题       275    个

在Android应用中玩转百度地图,由浅入深的带领大家一步步学习

进入课程

第二节课代码加入后出错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信