写了个一个简单的程序获取当前位置,但是总是报错“java.lang.SecurityException: Requires ACCESS_FINE_LOCATION permission
我的AndroidManifest.xml里头都设了相关的permission        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        <uses-permission android:name="android.permission.INTERNET"/> 
还有就是我的MapView只显示方格不显示地图,我已经按照文档设置的apiKey.我是在模拟器上跑的,这个跟模拟器有关系么,我使用的是google 2.2 api. <com.google.android.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/house_mapview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:apiKey="0zjvHbWa323T6fE1PhTcncdKiNedEcHtTPnXHZg"
android:layout_below="@+id/house_map_rel_1"/>  

解决方案 »

  1.   

    没具体在2.2上面做过 , 我看你那个权限 , 应该是没问题的。
    只显示方格 , 可能是KEY有问题 ,也有可能是网络的问题。
    模拟器要用支持Google API的emulator
      

  2.   

    先确定网络OK吧,有没有什么log信息可以查看呢?
      

  3.   

    错误的log如下,应该不是网络的问题,我使用模拟器里的Maps这个应该是可以看到地图的,不过在Maps点MyLocation也没有效果,但是没有exception,只是没有显示当前位置而已。我使用的模拟器就是带google API 2.2的模拟器。.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.houserent/com.example.houserent.HouseMapActivity}: java.lang.SecurityException: Requires ACCESS_FINE_LOCATION permission
    ndroidRuntime(  651):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
    W/dalvikvm(  737): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
    E/AndroidRuntime(  737): FATAL EXCEPTION: main
    E/AndroidRuntime(  737): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.houserent/com.example.houserent.HouseRentTabActivity}: j
    ava.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.houserent/com.example.houserent.HouseMapActivity}: java.lang.NullPointerException
    E/AndroidRuntime(  737):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
    E/AndroidRuntime(  737):        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
    E/AndroidRuntime(  737):        at android.app.ActivityThread.access$2300(ActivityThread.java:125)
    E/AndroidRuntime(  737):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
    E/AndroidRuntime(  737):        at android.os.Handler.dispatchMessage(Handler.java:99)
    E/AndroidRuntime(  737):        at android.os.Looper.loop(Looper.java:123)
    E/AndroidRuntime(  737):        at android.app.ActivityThread.main(ActivityThread.java:4627)
    E/AndroidRuntime(  737):        at java.lang.reflect.Method.invokeNative(Native Method)
    E/AndroidRuntime(  737):        at java.lang.reflect.Method.invoke(Method.java:521)
    E/AndroidRuntime(  737):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    E/AndroidRuntime(  737):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    E/AndroidRuntime(  737):        at dalvik.system.NativeStart.main(Native Method)
    E/AndroidRuntime(  737): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.houserent/com.example.houserent.HouseMapActiv
    ity}: java.lang.NullPointerException
    E/AndroidRuntime(  737):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
    E/AndroidRuntime(  737):        at android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
    E/AndroidRuntime(  737):        at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
    E/AndroidRuntime(  737):        at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
    E/AndroidRuntime(  737):        at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651)
    E/AndroidRuntime(  737):        at android.widget.TabHost.setCurrentTab(TabHost.java:323)
    E/AndroidRuntime(  737):        at com.example.houserent.HouseRentTabActivity.onCreate(HouseRentTabActivity.java:168)
    E/AndroidRuntime(  737):        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    E/AndroidRuntime(  737):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
    E/AndroidRuntime(  737):        ... 11 more
    E/AndroidRuntime(  737): Caused by: java.lang.NullPointerException
    E/AndroidRuntime(  737):        at com.example.houserent.HouseMapActivity.updateCur
      

  4.   

    mapview的问题找到原因了,是android 模拟器版本的问题,换成1.6的版本就好了。看样子还是少用最新版本。
    多谢各位了!
      

  5.   

    android:layout_below="@+id/house_map_rel_1"/>main 中这行
    这个house_map_rel_1
    lz定义的是什么 ?
    我的也只有方格没有地图显示 是1.6的版本 
    权限 apiKEY都有 
     
      

  6.   

    回楼上, 想在真机上跑需要自己生产一个keystore, 再通过它去申请一个private apikey
      

  7.   

    从你的报错来看 ,有句ACCESS_FINE_LOCATION permission
    ,你要注意分析真正的错误啊
      

  8.   

    从你的报错来看 ,有句ACCESS_FINE_LOCATION permission
    ,你要注意分析真正的错误啊