Mapbox 应用程序在启动时崩溃
Mapbox Application crashes while launching
我正在尝试创建一个显示地图视图的简单地图框应用程序。调试时没有显示具体错误,但应用程序在启动时崩溃 itself.Here 是我创建的 .java 文件。
public class MainActivity extends AppCompatActivity {
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Mapbox.getInstance(this,String.valueOf(R.string.access_token));
setContentView(R.layout.activity_main);
mapView=(MapView)findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(MapboxMap mapboxMap) {
}
});
}
@Override
protected void onStart() {
super.onStart();
mapView.onStart();
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
}
这是我的 .xml 文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:mapbox="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
tools:context="com.example.logusubramaniyan.choropleth1.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<com.mapbox.mapboxsdk.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
mapbox:mapbox_cameraTilt="20"
mapbox:mapbox_cameraZoom="12"/>
</LinearLayout>
我不明白为什么 activity 在模拟器或任何 device.Any 想法上 运行 时无法启动?
这是我的 StackTrace 结果。
致命异常:主要
过程:com.example.logusubramaniyan.choropleth1,PID:17191
java.lang.RuntimeException: 无法启动 activity ComponentInfo{com.example.logusubramaniyan.choropleth1/com.example.logusubramaniyan.choropleth1.MainActivity}: android.view.InflateException: 二进制 XML 文件行 #16:二进制 XML 文件行 #16:膨胀错误 class com.mapbox.mapboxsdk.maps.MapView
在 android.app.ActivityThread.performLaunchActivity
试着把这条线
Mapbox.getInstance(this,String.valueOf(R.string.access_token));
在 setContentView 行之后检查。
尝试添加访问令牌以在这样的布局中查看:
mapbox:access_token="access_token"
String.valueOf()
没有正确地将其转换为字符串值,因此无法正确读取访问令牌。
尝试直接粘贴访问令牌而不是给它 R.string.something。
你的问题应该已经解决了。
为了支持@aadhil 的回答,
尝试调整这条线
String.valueOf(R.string.access_token)
至
this.getResources().getString(R.string.access_token)
我正在尝试创建一个显示地图视图的简单地图框应用程序。调试时没有显示具体错误,但应用程序在启动时崩溃 itself.Here 是我创建的 .java 文件。
public class MainActivity extends AppCompatActivity {
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Mapbox.getInstance(this,String.valueOf(R.string.access_token));
setContentView(R.layout.activity_main);
mapView=(MapView)findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(MapboxMap mapboxMap) {
}
});
}
@Override
protected void onStart() {
super.onStart();
mapView.onStart();
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
}
这是我的 .xml 文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:mapbox="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
tools:context="com.example.logusubramaniyan.choropleth1.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<com.mapbox.mapboxsdk.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
mapbox:mapbox_cameraTilt="20"
mapbox:mapbox_cameraZoom="12"/>
</LinearLayout>
我不明白为什么 activity 在模拟器或任何 device.Any 想法上 运行 时无法启动?
这是我的 StackTrace 结果。
致命异常:主要 过程:com.example.logusubramaniyan.choropleth1,PID:17191 java.lang.RuntimeException: 无法启动 activity ComponentInfo{com.example.logusubramaniyan.choropleth1/com.example.logusubramaniyan.choropleth1.MainActivity}: android.view.InflateException: 二进制 XML 文件行 #16:二进制 XML 文件行 #16:膨胀错误 class com.mapbox.mapboxsdk.maps.MapView 在 android.app.ActivityThread.performLaunchActivity
试着把这条线
Mapbox.getInstance(this,String.valueOf(R.string.access_token));
在 setContentView 行之后检查。
尝试添加访问令牌以在这样的布局中查看:
mapbox:access_token="access_token"
String.valueOf()
没有正确地将其转换为字符串值,因此无法正确读取访问令牌。
尝试直接粘贴访问令牌而不是给它 R.string.something。
你的问题应该已经解决了。
为了支持@aadhil 的回答,
尝试调整这条线
String.valueOf(R.string.access_token)
至
this.getResources().getString(R.string.access_token)