我在Android版本5.x中遇到问题,在Android 4.3中无法重现。
启动PreferenceActivity时,会出现以下错误:
java.lang.RuntimeException:无法启动活动 ComponentInfo {com.xxxx.yyyy / com.xxxx.yyyy.view.SettingsActivity}: android.view.InflateException:二进制XML文件行#31:二进制XML 文件行#31:错误导致类
我出于某些原因浏览网页,但他们说这个错误可能会因为几个不同的原因而发生,不知道究竟发生了什么,也无法解决问题。
如果我清空preferences.xml错误就在那里,如果我启动另一个DummyActivity(空白活动)它会再次发生,所以错误可能是......在应用程序的其他地方!!
来电者活动是地图活动;我已经读到这可能是一个问题,但我是使用最新文档开始的:
((SupportMapFragment) mContext.getSupportFragmentManager()
.findFragmentById(R.id.map))
.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap map) {
mMap = map;
setUpMap();
}
});
使用getSupportFragmentManager和异步调用。
有什么想法吗?我不能只搜索整个应用程序寻找此错误! Android应该为这类问题提供更多人类可读的信息......特别是当它们不会在每个Android版本中发生时,这是另一个问题:为什么兼容性经常被破坏。
答案 0 :(得分:0)
在xml文件中提及android:name = "com.packagename.Activityname"
。
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"
android:name="com.packagename.Activityname"/>
答案 1 :(得分:0)
使用我的源代码控制系统,我进行了二元搜索(叹气)以找到第一次出现错误的变更集,当我将sdk目标版本更新为 API 23(Android 6.0,权限更改)时,它匹配)一切都破碎:
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
}
dependencies {
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.google.android.gms:play-services-location:8.4.0'
compile 'com.google.android.gms:play-services-maps:8.4.0'
}
我已经搜索过,有更多人遇到同样问题,所以在我看来那里有sdk工具版本23.0.1中的错误(最新版本) )即可。问题是我无法更新到API版本23并在Android 6处理它们时正确检查权限,但我无法解决这个问题,API工具无法正常工作。