美文网首页Android开发经验谈Android开发Android技术知识
Android xml中自定义View无法自动补全的一种解决方法

Android xml中自定义View无法自动补全的一种解决方法

作者: 十个雨点 | 来源:发表于2018-10-23 23:24 被阅读27次

    最近发现项目中出现一个问题:module(A)里的自定义View在其他module(B)里写xml的时候,无法自动补全,但是在A里则可以补全。

    无法补全xml

    经过多方尝试,发现在另一个module(C)里,也是可以自动补全的。


    可以自动补全xml

    因为A、B、C三个module都是很简单的module,没有什么特别的地方。仔细对比发现:A和C的compileSdkVersion都是24,而B中是区分productFlavors的,local的compileSdkVersion是24,而intl的compileSdkVersion是26(国际化版本,Google Play要求targetSdkVersion改到26,所以compileSdkVersion也跟着改了)。

    那是不是这个原因呢?试着把B的compileSdkVersion统一改成24以后,果然就可以自动补全了。或者把A、B、C的compileSdkVersion统一改成26,也能解决问题。

    总结一下:

    统一所有module中的compileSdkVersion还是比较重要的。这里提供一种可行方式供参考。

    在根目录的build.gradle中添加:

    ext {
                compileSdkVersion: 26,
                buildToolsVersion: "24.0.3",
                supportLibVersion: "24.2.1",
                minSdkVersion    : 15,
                targetSdkVersion : 22
    }
    

    在各个module的build.gradle中添加:

    android {
        compileSdkVersion rootProject.ext.compileSdkVersion
        buildToolsVersion rootProject.ext.buildToolsVersion
        defaultConfig {
            minSdkVersion rootProject.ext.minSdkVersion
            targetSdkVersion rootProject.ext.targetSdkVersion
            ……
        }
    ……
    }
    
    dependencies {
        compile "com.android.support:support-v4:${supportLibVersion}"
    }
    

    这样就统一好所有版本了。要改动version的时候,只要改动一处就好了。

    相关文章

      网友评论

        本文标题:Android xml中自定义View无法自动补全的一种解决方法

        本文链接:https://www.haomeiwen.com/subject/suwuzftx.html