Skip to content

QMUI Q & A

cgspine edited this page Dec 29, 2017 · 3 revisions

1.编译时提示 QDWidgetContainter 不存在

QDWidgetContainter 在 QDDataManager 中被使用到,它是通过java注解功能在编译时动态生成的,是为了给 QD 项目提供展示所需的 QMUI 组件信息。部分人员在拷贝 QD 项目中的代码时会带上 QDDataManager 相关的代码,不管是有心还是无意,都是不应该的。

2. 依赖包冲突

QMUI 内部会依赖 support 包,而一般项目也会引入 support 包,这难免会出现 support 版本冲突。gradle 有提供版本冲突的解决措施,所以在项目中添加如下代码即可:

configurations.all {
    resolutionStrategy {
        force "com.android.support:recyclerview-v7:$supportVersion"
        force "com.android.support:appcompat-v7:$supportVersion"
        force "com.android.support:design:$supportVersion"
        force "com.android.support:support-vector-drawable:$supportVersion"
    }
}

3. 能不能不使用 QMUI 提供的 Theme

因为 QMUI 里的很多控件都依赖 theme,所以要求 AppTheme 的 parent 是 QMUI.Compat(或QMUI,不推荐)。使用这 2 个 theme 本质上是为了给 QMUI 自定义的 attr 赋值。

如果你有使用自己主题的需求,目前可以使用你自己的主题,然后将 qmui_themes_compat.xml 文件中的 <style name="QMUI.Compat"></style> 里的 item 拷到自己的主题中,以保证依赖 theme 的控件能正常工作。

4. 直接从 Github 下载 zip 文件, 项目不能运行,出现诸如Error:(4, 0) For input string: ""之类的错误

QMUIDemo 的 versionCode 是通过 gitVersion 控制的。 如果通过 git clone 获取源码,则可以正常编译;如果直接下载 Github 打包的 zip 文件,则需要修改 qmuidemo/build.gradle 文件,写死一个 gitVersion