android.content.ActivityNotFoundException:找不到显式活动类android St



所以我是android工作室的新手。所以我有4个活动,在mainactivity上,我使用startActivity方法打开Registration活动。现在,当我尝试运行应用程序时,会显示mainactivity,但当我单击按钮"注册"(我使用了setonclicklistener作为startactivity(时,当我单击该按钮时,我的应用程序崩溃,并显示以下消息

2020-03-30 02:04:35.435 20647-20647/com.example.airlineticketreservation E/AndroidRuntime: FATAL 
EXCEPTION: main
Process: com.example.airlineticketreservation, PID: 20647
android.content.ActivityNotFoundException: Unable to find explicit activity class 
{com.example.airlineticketreservation/int}; have you declared this activity in your 
AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1933)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1616)
at android.app.Activity.startActivityForResult(Activity.java:4487)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676)
at android.app.Activity.startActivityForResult(Activity.java:4445)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:663)
at android.app.Activity.startActivity(Activity.java:4806)
at android.app.Activity.startActivity(Activity.java:4774)
at com.example.airlineticketreservation.MainActivity$onCreate$1.onClick(MainActivity.kt:27)
at android.view.View.performClick(View.java:6294)
at android.view.View$PerformClick.run(View.java:24770)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

我的机器人清单文件就是这个

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.airlineticketreservation">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Registration"
android:label="@string/app_name"
/>


<meta-data
android:name="preloaded_fonts"
android:resource="@array/preloaded_fonts" />
</application>
</manifest>

我的mainactivity.kt文件就是这个

package com.example.airlineticketreservation
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.Spinner

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
/* var book_button: Button = findViewById(R.id.book_ticket)
var name_view:EditText = findViewById(R.id.name_field)
var cnic_view:EditText = findViewById(R.id.cnic_field)
var cancellationBtn_mainActivity: Button = findViewById(R.id.cancel_ticket_btn)
var spinner:Spinner = findViewById(R.id.spinner)
*/
var registrationBtn_mainActivity : Button = findViewById(R.id.register_btn)
registrationBtn_mainActivity.setOnClickListener {
var intentx = Intent(this,R.layout.registration::class.java)
startActivity(intentx)
}

我该怎么办?

替换:

R.layout.registration::class.java

带有:

Registration::class.java

您正试图将资源ID用作Activity类,但这将不起作用。

Intent构造函数需要两个参数:

  1. 上下文,您的意图将从该上下文传递到系统
  2. 类,系统将向其传递此意图

在代码中,使用R.layout.registration::class.java引用的是不是类对象的resId。您可以在日志的这一部分中识别出它采用int值:

{com.example.airlineticketreservation/int}; have you declared this activity in your 
AndroidManifest.xml?

因此,用Registration::class.java替换R.layout.registration::class.java为:

registrationBtn_mainActivity.setOnClickListener {
var intentx = Intent(this, Registration::class.java)
startActivity(intentx)
}

最新更新