Android DataBinding 使起来还是蛮有趣的,但是 Android Studio 总是不时莫名其貌的出状况,找不着生成的 databinding classes。构建的时候会出现如下提示:
Google 了一些方法都不灵。最后只有以下这样将生成的 java 文件 copy 到正确位置解决问题。
1 | // fix for dataBinder: Source folders generated at incorrect location android.applicationVariants.all { variant -> def variantName = variant.name.capitalize() def inputDir = "${buildDir}/intermediates/classes/${variant.dirName}" def sourceDir = "${buildDir}/generated/source/dataBinding/${variant.dirName}" def copyTask = tasks.create(name: "dataBindingFix${variantName}", type: Copy) { from inputDir into sourceDir include '**/*.java' } tasks["generate${variantName}Sources"].dependsOn copyTask variant.addJavaSourceFoldersToModel new File(sourceDir) } |
遇上同样问题的同学,将以下脚本加到 app build.gralde 就可以了。