java - MapBlocks Android中的空点异常错误
问题描述
我正在尝试按照本教程 进行操作,但出现错误这是堆栈跟踪
Process: com.example.mapp, PID: 7624
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mapp/com.example.mapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.mapbox.mapboxsdk.maps.MapView.onCreate(android.os.Bundle)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.mapbox.mapboxsdk.maps.MapView.onCreate(android.os.Bundle)' on a null object reference
at com.example.mapp.MainActivity.onCreate(MainActivity.java:21)
这是 activity_main.xml 的 mapview 部分
<com.mapbox.mapboxsdk.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
mapbox:mapbox_cameraTargetLat="37.7747"
mapbox:mapbox_cameraTargetLng="-122.4443"
mapbox:mapbox_styleUrl="mapbox://styles/mapbox/streets-v10"
mapbox:mapbox_cameraZoom="12"
/>
这是完整的 MainActivity.Java (删除了所有导入+地图框的更多功能)
public class MainActivity extends AppCompatActivity {
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Mapbox.getInstance(this, getString(R.string.access_token) );
mapView = (MapView) findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
super.onStart();
mapView.onStart();
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
}
提前致谢。
解决方案
您关注的那个 YouTube 视频有点老了。设置一个简单MapView
的现在以不同的方式完成。例如,您不能再通过 XML 设置地图样式 URL。
https://docs.mapbox.com/android/maps/examples/create-a-simple-map-view展示了设置 Mapbox 地图的基本方法。
推荐阅读
- php - Laravel 中的递归排序
- microsoft-teams - 使用连接器开发我公司的产品与 Microsoft Teams 的集成
- javascript - 守护进程在打开 ttyACM0 后获取控制接口并接收 SIGHUP
- angularjs - 角度数据表最小化观察者
- c++ - 在编译时根据某些条件生成一个字符串
- angular - 角度 Firebase 托管不起作用
- javascript - 动态生成 HTML 元素到 PHP 电子邮件表单
- c# - 返回的方法与返回变量的结果不同
- javascript - 如何从上传的图像中获取日期?
- javascript - array.map 后未定义的值 - react.js