Вопрос о намерениях в приложении для Android от java до 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 

Вот моя простая Java-активность . Я передаю свое намерение Java в деятельность Kotlin нормально, нет ошибок, и приложение также запускается, когда я нажимаю кнопку тоже. Kotlin намерен приложение рушится

 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)); } }); } } 

Вот моя намеренная деятельность 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)) } } } 

Вы должны использовать Appcompat Theme в своем стиле. Удостоверьтесь, что у вас есть такая тема.

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

Кроме того, проверьте свой manifest , у вас есть правильная тема.

Попробуйте AppcompatActiviy вместо Activity Измените код следующим образом.

 public class MainActivity extends AppcompatActiviy 

Надеюсь, поможет:)