1. TextView

textView.setText(int) :
可能本意是调用
textView.setText(String.valueOf(int))
结果调用到了
textView.setText(@ResourceId int) :

2. 资源名称重名了

每个 App 最终生成R.java只有一个 ,多个模块之间最好加上自己的prefix

android {

compileSdkVersion 23
buildToolsVersion '23.0.2'

defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

lintOptions {
abortOnError false
}

resourcePrefix "prefix_"
}

3. 在aar中引用 R.id 时候 path 不对

import {{package}}.R.java

//引用时
getString(R.string.hello); //没问题
getString({{submodule_package}}.R.string.hello); //noop boom!

这个问题经常出现在从别的项目IDE拷贝资源代码时,aar编译上传不会报错,但是在宿主中引用aar时,.R.java不存在,会报错的。这种错误在code review时要小心点。

4. (to be continue…)