当我将Android Studio更新为版本AI-141.2024585时,我正在处理我的项目。
升级前一切运行良好,但项目没有编译。 我有这个错误错误:(3)解析XML时出错:前缀不能绑定到其中一个保留的命名空间名称 这是带有错误的文件values.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:ns1="http://www.w3.org/2000/xmlns/">
<declare-styleable name="DragSortListView"><attr format="dimension" name="collapsed_height"/><attr format="color" name="float_background_color"/><attr format="float" name="float_alpha"/><attr format="integer" name="remove_animation_duration"/><attr format="integer" name="drop_animation_duration"/><attr format="float" name="slide_shuffle_speed"/><attr format="boolean" name="remove_enabled"/><attr name="remove_mode"><enum name="clickRemove" value="0"/><enum name="flingRemove" value="1"/></attr><attr format="integer" name="fling_handle_id"/><attr format="integer" name="click_remove_id"/><attr format="boolean" name="drag_enabled"/><attr name="drag_start_mode"><enum name="onDown" value="0"/><enum name="onMove" value="1"/><enum name="onLongPress" value="2"/></attr><attr format="integer" name="drag_handle_id"/><attr format="float" name="drag_scroll_start"/><attr format="float" name="max_drag_scroll_speed"/><attr format="boolean" name="track_drag_sort"/><attr format="boolean" name="use_default_controller"/><attr format="boolean" name="sort_enabled"/></declare-styleable>
<eat-comment/>
<string name="com.crashlytics.android.build_id" ns1:ignore="UnusedResources,TypographyDashes" translatable="false" ns1:ns0="http://schemas.android.com/tools">0000000000000000</string>
</resources>
我已尝试安装稳定版Android Studio并更新gradle。 我还搜索了整个项目中的ns1属性,但只出现在该文件中。
作为生成的文件无法更改它,但我可以修改库。 你知道如何解决这个错误吗?非常感谢
答案 0 :(得分:13)
这是因为crashlytics插件。您可以尝试删除每个模块中的任何crashltics生成的xml文件,然后重新同步应用程序的gradle文件。
crashltics生成的xml文件看起来像[ModuleXYZ]/src/res/values/com_crashlytics_xxx.xml
Crashlytics似乎发布了更新,您还应该更新插件。
更新使用上述程序成功构建项目后,可能会再次发生,昨天发生了两次。不知道为什么,但只要按照上面的程序,它将被修复。
答案 1 :(得分:3)
我遇到了同样的问题,罗伯特说可以修复问题,删除所有com_crashlytics_export_strings.xml
文件。
另外请确保build.gradle中的crashlytics版本为2.4.0+,并且不会再次生成损坏的文件。
compile('com.crashlytics.sdk.android:crashlytics:2.4.0@aar') {
transitive = true;
}