Joh*_* D. 19 android gradle 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.
Run Code Online (Sandbox Code Playgroud)
它指向一个内部类Baz,它扩展了android.support.v4.app.FragmentStatePagerAdapter.我可以通过注释掉类,以及在外部类中对它的任何引用以及重建来暂时解决错误.错误消失了,但显然该类不再存在,因此其他事情在运行时中断.然后,如果我取消注释并构建,它将适用于一些构建.然后错误回来了.冲洗并重复.我认为关闭Genymotion模拟器可能会触发它.
其他人遇到这个,或有任何想法?
这是违规代码:
class Bar : Fragment() {
@Inject
lateinit var api:ApiRequester
var data : ArrayList<Data> = 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
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:道歉,Baz扩展FragmentStatePagerAdapter,而不像我最初所说的片段.我正在使用Dagger2,这可能完全有效.
| 归档时间: |
|
| 查看次数: |
1039 次 |
| 最近记录: |