私はKotlin Androidアプリを構築しようとすると、今日から、私は私のGradleで、次のエラーで会っています構築:Kotlin - 断続的な「不正なクラスファイル」エラー
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.
それは、内側に向いていますクラス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
}
}
はEDIT:私は最初に述べたように謝罪は、バズがFragmentStatePagerAdapterを拡張し、そのフラグメントではない。ここ
は、問題のあるコードです。私はDagger2を使用していますが、これはまったく効果があります。
問題の原因となるサンプルを投稿してください。注釈処理に関連している可能性があるので、使用しているライブラリに関する追加情報(ButterKnifeやDaggerなど)を手軽に利用できます。 – miensol
使用しているKotlinのバージョンは何ですか? – yole
Androidスタジオによると、私はバージョン1.0.0-beta-4584-IJ141-13 –