意图问题在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
activity.Build是好的没有错误和应用程序也启动时,我也单击按钮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
intent活动
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
主题。 确保你有这样的主题。
<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
。像这样AppcompatActiviy
代码。
public class MainActivity extends AppcompatActiviy
希望它有助于:)