XmlPullParserException二进制XML文件中的行#17 标签需要viewportWidth> 0
这是一个后续问题,这个问题:XmlPullParserException二进制XML文件中的行#17 <vector>标签需要viewportWidth> 0
我也更新了支持库至23.2,并开始得到错误:
XmlPullParserException Binary XML file line #17<vector> tag requires viewportWidth > 0
这个问题解决了它的Android Studio和Gradle。如何在不使用Gradle的情况下使用Eclipse来解决这个问题?
先前的回答这个问题,必须对谁使用摇篮开发的解决方案,但我不使用摇篮,所以我想总结自己的答案,帮助几个人和我最终做了什么。我接受了我自己的回答,而不是他自从像我说的那样,我不使用Gradle,所以我没有使用他写的。
我做了几件事情让它最终工作。可能的解决方案是:
首先为用户摇篮:
1)还原支持库旧版本,因为这其中有一个错误。
2)使用compile'com.android.support:appcompat-v7:23.2.1',因为该错误已修复。
3)摇篮插件2.0:
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
或者你可以使用等级生成工具1.5.0(classpath 'com.android.tools.build:gradle:1.5.0'
)
defaultConfig {
generatedDensities = []
}
//不需要用这个2.0摇篮
aaptOptions {
additionalParameters "--no-version-vectors"
}
这是非Gradle用户的一部分:
)1)打开SDK管理器。
2)卸载均来自API的22“Android Wear X”(其中X是ARM或Intel)和23
3)I然后仍然在的样式的程序兼容性库中的一个有一个编译错误。我只是将它们评论出来(如果它使用非常特定的风格,我将冒着非常特定的设备无法工作的风险)。
之后,我清理了项目,它刚开始工作。
您可以切换回以前版本的程序兼容性库(快速修复)的:
compile 'com.android.support:appcompat-v7:23.1.1'
或保留当前库版本,并进行相应的更新您的构建gradle这个文件由google in version 23.2.0 release note解释。
//for Gradle Plugin 2.0+
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
如果您使用的摇篮1.5,你会改用
defaultConfig {
generatedDensities = []
}
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
不要忘记更新您的gradle这个构建工具1.5.0版本至少或你不能使用新参数,如generatedDensities:为什么here
这适用于me.my gradle构建工具版本为1.3.1。我只是将aaptOptions {0}附加参数“ - 无版本向量” }添加到我的build.gradle而不添加generatedDensities = []并且它可以工作 –
@AllenVork您建议的方式适用于我。谢谢 –
我得到同样的问题。并且矢量也不起作用 –
对于n
classpath 'com.android.tools.build:gradle:1.5.0'
更多相关信息只有EW用户,这个问题是固定的:
compile 'com.android.support:appcompat-v7:23.2.1'
我在更新我的Gradle依赖到最新版本后忘了更新我的项目的buildToolsVersion后,我在Android Studio 2.2中得到了同样的错误。
我改变:
compile 'com.android.support:appcompat-v7:22.2.1'
到:
compile 'com.android.support:appcompat-v7:24.2.1'
虽然buildToolsVersion保持在 “22.0.1” 像这样:
buildToolsVersion "22.0.1"
所以我所做的就是更新buildToolsVersion到24
像这样:
buildToolsVersion "24"
因为它以前已经与SDK管理器下载。因此,从SDK管理器检查最新的buildToolsVersion
并查看它是否与依赖版本匹配。
希望这可以帮助别人。
尝试已经提供的答案后,该应用在某些设备(主要是三星)上崩溃。因此,既然一直以来,我尝试加载矢量绘图资源这样
Drawable drawable = AppCompatDrawableManager.get().getDrawable(context, R.drawable.resource_id);
这AppCompatDrawableManager
内部尝试各种方法来获取绘制:
Drawable getDrawable(@NonNull Context context, @DrawableRes int resId,
boolean failIfNotKnown) {
checkVectorDrawableSetup(context);
Drawable drawable = loadDrawableFromDelegates(context, resId);
if (drawable == null) {
drawable = createDrawableIfNeeded(context, resId);
}
if (drawable == null) {
drawable = ContextCompat.getDrawable(context, resId);
}
if (drawable != null) {
// Tint it if needed
drawable = tintDrawable(context, resId, failIfNotKnown, drawable);
}
if (drawable != null) {
// See if we need to 'fix' the drawable
DrawableUtils.fixDrawable(drawable);
}
return drawable;
}
因此,它适用于所有Android版本和所有设备(希望) 。
注意:不要尝试使用Picasso(2.5.2)或Glide(3.7.0)的方法加载矢量绘图。因为他们在内部使用已弃用的getDrawable(@DrawableRes int id)
方法。这将导致某些设备上的Resources.NotFoundException
。
对于像我这样仍然在不使用Gradle的情况下使用Eclipse的人,我发生了在前支持Lollipop设备上运行的Android支持库r23.2.0的错误(API < 21)。
此问题已在r23.2.1中得到解决,我已成功地在API级别16上运行我的项目。
此版本的Eclipse库不再可通过SDK管理器使用,但是您可以从此link手动下载它。
[Update Android Support Library to 23.2.0 cause cause error:XmlPullParserException Binary XML file line#17 tag requires viewportWidth> 0](http:// stackoverflow。com/questions/35622438/update-android-support-library-to-23-2-0-cause-error-xmlpullparserexception-bin) –