Problema de intención en la aplicación de Android de Java a Kotlin

09-22 11:14:21.804 13211-13211/com.example.balarajum.kotlin E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.balarajum.kotlin, PID: 13211 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.balarajum.kotlin/com.example.balarajum.kotlin.Main2Activity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2348) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2410) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1313) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5345) Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:742) 09-22 11:14:21.804 507-910/? W/ActivityManager: Force finishing activity 1 com.example.balarajum.kotlin/.Main2Activity 

Aquí está mi simple actividad de Java . Estoy pasando mi intención de Java a la actividad de Kotlin está bien, no hay errores y la aplicación también se inicia cuando hago clic en el button. Kotlin intenta que la aplicación se cuelgue.

 public class MainActivity extends Activity { private Button btn1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button) findViewById(R.id.java_btn); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(MainActivity.this,Main2Activity.class)); } }); } } 

Aquí está mi actividad de intención de Kotlin

 class Main2Activity : AppCompatActivity() { override protected fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main2) var btn = findViewById(R.id.kotlin_btn); btn.setOnClickListener { startActivity(Intent(this@Main2Activity, MainActivity::class.java)) } } } 

Tienes que usar el tema de Appcompat en tu estilo. Asegúrate de tener el tema así.

  <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> 

Además, verifica tu manifest , tienes el tema correcto.

Pruebe AppcompatActiviy lugar de Activity Cambie el código de esta manera.

 public class MainActivity extends AppcompatActiviy 

Espero eso ayude:)

  • "Prefiere ejecutar el procesador daga sobre esa class en su lugar" en Kotlin
  • La comprobación de permissions para SET_ALARM siempre devuelve PERMISSION_DENIED sin pedir permiso al usuario en Android Studio, Kotlin
  • BLE no puede conectarse a un dispositivo ya enlazado
  • ¿Cuál es el equivalente de Kotlin para bitwise o con asignación '| ='?
  • Transacciones de Jooq: las conexiones no se liberan al set, si se lanza una exception en la transacción
  • ¿Cuál es la mejor manera de esperar hasta que el actor se detenga en kotlinx.coroutines 0.20?
  • En Kotlin, cómo hacer que una propiedad sea accesible solo por tipo específico
  • Conversión de elementos Int de list que no producen caracteres Kotlin
  • Accediendo a las vistas de la actividad con Anko
  • ¿Por qué nunca se llama a createView?
  • Context de reinicio de JavaFX