android .content.ActivityNotFoundException: не удается найти явный класс активности Android Studio Kotlin Ошибка - PullRequest
0 голосов
/ 30 марта 2020

так что я новичок в android студии. таким образом, у меня есть 4 действия и на mainacctivity я использовал метод startActivity, чтобы открыть действие регистрации. теперь, когда я пытаюсь запустить приложение, отображается основное действие, но когда я нажимаю кнопку «Регистрация» (я использовал setonclicklistener для запуска), когда я нажимаю на кнопку, мое приложение вылетает, и появляется следующее сообщение

 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)

и мой файл androidmanifest это

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

       }

что мне делать?

Ответы [ 2 ]

2 голосов
/ 30 марта 2020

Заменить:

R.layout.registration::class.java

на:

Registration::class.java

Вы пытаетесь использовать идентификатор ресурса в качестве класса Activity, и это не будет работать.

1 голос
/ 30 марта 2020

Конструктор намерений нуждается в двух параметрах:

  1. контекст, из которого ваше намерение будет доставлено в систему.
  2. класс, в который система доставит это намерение ..

В вашем коде с R.layout.registration::class.java вы ссылаетесь на resId, который не является объектом класса. В этой части журнала вы можете определить, что он принимает значение int:

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

Поэтому замените R.layout.registration::class.java на Registration::class.java следующим образом:

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

       }
...