Kotlin – 间歇性的“错误的类文件”错误

从今天开始,当我尝试构建我的Kotlin Android应用程序时,在我的Gradle构建中遇到了以下错误:

Error:cannot access Baz bad class file: /Users/me/projects/site/android/app/build/tmp/kapt/debug/classFileStubs/com/company/foo/Bar$Baz.class bad RuntimeInvisibleParameterAnnotations attribute: Baz(FragmentManager) Please remove or make sure it appears in the correct subdirectory of the classpath. 

它指向一个扩展android.support.v4.app.FragmentStatePagerAdapter的内部类Baz。 我可以暂时避开这个错误,通过评论这个类,并在外部类中引用它,并重建。 错误消失了,但显然这个类不再存在,所以其他的东西在运行时中断。 然后,如果我取消注释并构建,它将适用于一些构建。 然后错误回来了。 冲洗并重复。 我想关闭Genymotion模拟器可能会触发它。

任何人遇到这个,或有任何想法?

这是有问题的代码:

 class Bar : Fragment() { @Inject lateinit var api:ApiRequester var data : ArrayList = ArrayList() override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { //[...] view creation code //[...] data population code viewPager.adapter = Baz(childFragmentManager) //[...] more view creation code } inner class Baz(fm:FragmentManager) : FragmentStatePagerAdapter(fm) { override fun getCount(): Int { return data.count() } override fun getItem(position: Int): Fragment? { var jf = FooFragment() var bundle = Bundle() bundle.putParcelable("data", data[position]) jf.arguments = bundle return jf } } 

编辑:道歉,巴兹延伸FragmentStatePagerAdapter,而不是我最初所说的片段。 我正在使用Dagger2,这在这里完全可以起作用。

我有两个选择来帮助你。

1-尝试升级proguard。 使用这个

2-使用Java 7,改变你的路径。 export JAVA_HOME = /usr/libexec/java_home -v 1.7