with the supports studio stdlib programming plugin please only jre7 jdk7 instead higher create and android gradle kotlin

android - the - kotlin-stdlib-jre7 is deprecated. please use kotlin-stdlib-jdk7 instead



Kotlin-Error intermitente de "archivo de clase incorrecto" (1)

A partir de hoy, cuando intento construir mi aplicación Kotlin para Android, me encuentro con el siguiente error en mi compilación de 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.

Está apuntando a una clase interna Baz que extiende android.support.v4.app.FragmentStatePagerAdapter. Soy capaz de sortear temporalmente el error comentando la clase, y cualquier referencia a él en la clase externa, y la reconstrucción. El error desaparece, pero obviamente la clase ya no existe, por lo que otras cosas se rompen en el tiempo de ejecución. Entonces, si lo descomento y construyo, funcionará para algunas compilaciones. Entonces vuelve el error. Enjuague y repita. Creo que cerrar el emulador Genymotion puede activarlo.

¿Alguien más se topa con esto, o tiene alguna idea?

Aquí está el código ofensivo:

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: Disculpas, Baz extiende FragmentStatePagerAdapter, no Fragmento como lo dije inicialmente. Estoy usando Dagger2, que podría tener un efecto total aquí.


Tengo dos opciones para ayudarte.

1- Intenta actualizar el programa. Use THIS

2- Usa Java 7, cambia tu camino. exportar JAVA_HOME = /usr/libexec/java_home -v 1.7