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:)

  • Necesito una manera de cambiar de forma dinámica y progama el background de un ImageView en una vista de reciclador
  • Ejecute la testing de expreso varias veces
  • Cómo burlarse de un object singleton Kotlin?
  • ¿Cómo uso AnkoComponent dentro de FirebaseRecyclerAdapter?
  • ¿Qué hará HashMap (it)?
  • ¿Cómo usar MapBuilder en kotlin y agregar todos los valores?
  • Referencia de constructor de Kotlin con generics
  • Android: la barra de herramientas no se muestra