aaverin
02/18/2016, 8:21 PMinterface EventsDelegatingWidget<D : EventsDelegate> : Widget {
var eventsDelegate: D?
}
interface ArticleWidgetDelegate : EventsDelegate {
fun something()
}
class ArticleWidget @Inject constructor() : EventsDelegatingWidget<ArticleWidgetDelegate>, ArticleWidgetContract {
override var eventsDelegate: ArticleWidgetDelegate? = null
...
}
When ArticleWidget becomes a data
in layout with databiding following exception is thrown:
Error:cannot generate view binders com.sun.tools.javac.jvm.ClassReader$BadClassFile: bad class file: /Users/.../app/build/tmp/kapt/stageDebug/classFileStubs/.../common/view/EventsDelegatingWidget$DefaultImpls.class
undeclared type variable: D
Please remove or make sure it appears in the correct subdirectory of the classpath.
at com.sun.tools.javac.jvm.ClassReader.badClassFile(ClassReader.java:357)
at com.sun.tools.javac.jvm.ClassReader.findTypeVar(ClassReader.java:948)
at com.sun.tools.javac.jvm.ClassReader.sigToType(ClassReader.java:653)
at com.sun.tools.javac.jvm.ClassReader.sigToTypes(ClassReader.java:862)
at com.sun.tools.javac.jvm.ClassReader.classSigToType(ClassReader.java:778)
at com.sun.tools.javac.jvm.ClassReader.sigToType(ClassReader.java:691)
at com.sun.tools.javac.jvm.ClassReader.sigToTypes(ClassReader.java:862)
at com.sun.tools.javac.jvm.ClassReader.sigToType(ClassReader.java:716)
at com.sun.tools.javac.jvm.ClassReader.sigToType(ClassReader.java:639)
at com.sun.tools.javac.jvm.ClassReader.readType(ClassReader.java:562)
at com.sun.tools.javac.jvm.ClassReader$13.read(ClassReader.java:1158)
at com.sun.tools.javac.jvm.ClassReader.readAttrs(ClassReader.java:1381)
at com.sun.tools.javac.jvm.ClassReader.readMemberAttrs(ClassReader.java:1371)
at com.sun.tools.javac.jvm.ClassReader.readMethod(ClassReader.java:2044)
at com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:2252)
at com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:2324)
at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:2511)
at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:2442)
at com.sun.tools.javac.jvm.ClassReader.access$000(ClassReader.java:76)
at com.sun.tools.javac.jvm.ClassReader$1.complete(ClassReader.java:240)
at com.sun.tools.javac.code.Symbol.complete(Symbol.java:574)
at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1037)
at com.sun.tools.javac.code.Symbol$ClassSymbol.flags(Symbol.java:973)
at com.sun.tools.javac.code.Symbol$ClassSymbol.getKind(Symbol.java:1101)
at com.sun.tools.javac.model.JavacElements.addMembers(JavacElements.java:389)
at com.sun.tools.javac.model.JavacElements.getAllMembers(JavacElements.java:369)
at com.sun.tools.javac.model.JavacElements.getAllMembers(JavacElements.java:61)
at android.databinding.tool.reflection.annotation.AnnotationClass.getDeclaredMethods(AnnotationClass.java:303)
at android.databinding.tool.reflection.ModelClass.getMethods(ModelClass.java:250)