2016-01-19 15 views
19

私は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を使用していますが、これはまったく効果があります。

+2

問題の原因となるサンプルを投稿してください。注釈処理に関連している可能性があるので、使用しているライブラリに関する追加情報(ButterKnifeやDaggerなど)を手軽に利用できます。 – miensol

+2

使用しているKotlinのバージョンは何ですか? – yole

+0

Androidスタジオによると、私はバージョン1.0.0-beta-4584-IJ141-13 –

答えて

2

私はあなたを助ける2つの選択肢があります。

1アップグレードをお試しください。使用するTHIS

2- Java 7を使用し、パスを変更します。 export JAVA_HOME = /usr/libexec/java_home -v 1.7

関連する問題