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

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

Android xml中自定义View无法自动补全的一种解决方法_第1张图片
无法补全xml

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


Android xml中自定义View无法自动补全的一种解决方法_第2张图片
可以自动补全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无法自动补全的一种解决方法)