我刚刚更新了Android Studio 1.2.1.1,现在gradle在我的资源文件夹中遇到svg问题。我总是使用SVG没有问题,我希望它们将来会被“允许”。
:app:mergeDebugResources
:app:mergeDebugResources FAILED
/home/petergriffin/folder1/another-app/MyAwesome-App/app/src/main/res/drawable-hdpi/logo.svg
Error:Error: The file name must end with .xml or .png
Error:Execution failed for task ':app:mergeDebugResources'.
> /home/petergriffin/folder1/another-app/MyAwesome-App/app/src/main/res/drawable-hdpi/logo.svg: Error: The file name must end with .xml or .png
Information:BUILD FAILED
任何想法如何解决?
可绘制资源目录中的webp文件也存在同样的问题。
最新的gradle插件(v1.2.3)无法识别以前曾经使用过的某些图像格式。当我切换回v1.2.2时,我没有这个问题
更新:鉴于此功能已得到修复,您应该升级到最新的gradle插件版本而不是恢复。
您可以通过设置更改build.gradle中的版本:
buildscript {
repositories {
jcenter()
mavenCentral()
// mavenLocal() // Only if you want to use your local maven repo
}
dependencies {
// classpath 'com.android.tools.build:gradle:+'
classpath 'com.android.tools.build:gradle:1.2.2'
}
}
Android不支持SVG文件作为drawables。即使你把它们放在那里,系统也无法像你期望的那样解码它们。而是尝试将它们放在src/main/res/raw
或src/main/assets
文件夹中并适当加载它们(通过外部库)。大多数人混淆SVG和Vector-drawables,它们不是一回事。 Vector-drawables使用与SVG兼容的路径迷你语言,但就是这样。
当前接受的解决方案是恢复到Gradle插件的古老版本,这在大多数情况下会适得其反。工具团队正在投入大量精力来使构建更好(这是非常值得注意的)。
你应该向1.5.0
(已经稳定了一段时间)而不是回复你,并将android.disableResourceValidation=true
添加到你的gradle.properties
文件中(通常位于settings.gradle
旁边的根项目中)以启用1.2.2之前的行为。
有关更多信息,请参阅http://b.android.com/192493
在Android中你应该使用(XML)Vector Drawable文件(它们包含XML中的SVG信息,详细信息:https://developer.android.com/training/material/drawables.html#VectorDrawables)。
Vector Drawables可以从这个资源库下载:https://github.com/google/material-design-icons。在图标目录中查找名为drawable-anydpi-v21的文件夹。此文件夹包含要放置在应用程序的drawable目录中的Vector Drawable文件。
请注意,仅支持Android 5.0及更高版本才能使用Vector Drawable文件。如果您需要与<5.0 Android版本兼容,我建议使用此库:https://github.com/trello/victor此库可用于在编译应用程序期间将SVG文件转换为不同格式的drawable。这使您无需手动创建和保存mdpi / hdpi / xhdpi / xxhdpi文件夹。
如果您同等地命名Vector可绘制文件和SVG文件,则可以使用彼此相邻的两种方法。
将以下内容添加到gradle.properties:
android.disableResourceValidation =真
问题仍然存在于gradle 1.5上。似乎未来唯一的选择是使用“创建矢量资产”将svg文件转换为xml,然后选择svg file选项。
使用build时,android studio 1.5.1中存在问题:gradle:1.5.0.please给出解决方案。我刚刚更新了Android Studio 1.5.1,现在gradle在我的资源文件夹中遇到svg问题。我总是使用SVG没有问题,我希望它们将来会被“允许”。