【问题标题】:App stopping when trying to start a new activity after delay [duplicate]延迟后尝试开始新活动时应用程序停止[重复]
【发布时间】:2018-08-02 15:46:13
【问题描述】:

经过一段时间的延迟,我正在尝试开始一项新活动。但是应用程序在延迟后不断崩溃

Handler().postDelayed({
        val intent: Intent = Intent(applicationContext,loginActivity::class.java)
        startActivity(intent)
    }, 1000)

请帮忙。提前致谢!

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.aceri5.naada, PID: 15230
              android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.aceri5.naada/com.example.aceri5.naada.loginActivity}; have you declared this activity in your AndroidManifest.xml?
                  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1940)
                  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1618)
                  at android.app.Activity.startActivityForResult(Activity.java:4514)
                  at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
                  at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:68)
                  at android.app.Activity.startActivityForResult(Activity.java:4472)
                  at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:751)
                  at android.app.Activity.startActivity(Activity.java:4833)
                  at android.app.Activity.startActivity(Activity.java:4801)
                  at com.example.aceri5.naada.firstActivity$onCreate$1.run(firstActivity.kt:40)
                  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:6501)
                  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)

应用程序终止。

【问题讨论】:

  • 但也许你必须在 UI 线程上运行它。
  • 在清单文件中声明 loginActivity

标签: android timer kotlin


【解决方案1】:

您的 loginActivity 必须在 AndroidManifest.xml 文件中声明。基本上清单文件包含您的应用程序正在使用的所有组件。将其视为操作系统的“清单”,告诉它您的应用程序使用的组件、它如何与您的应用程序交互、您的应用程序使用的权限等等(更多信息here)。

要声明一个 Activity,您必须在清单中添加一个类似于以下条目的条目(请记住,根据您的要求,您可以声明更多属性):

<activity
   android:name=".loginActivity"            
   android:label="@string/app_name"/>

附:按照惯例,类以大写字母开头:)

【讨论】:

    【解决方案2】:

    尝试用下面的代码代替 val 意图:(删除 val 意图) 并这样做:

    Intent intent=new Intent(Yourcurrentclass.this,Desiredactivity.class); 开始活动(意图);

    如果没有解决,请分享您在运行应用程序时发生在运行部分的异常,基本上是您的堆栈跟踪。

    【讨论】:

    • 代码是用 Kotlin 而非 Java 编写的
    【解决方案3】:

    根据 logcat 消息描述,在清单文件中声明您的 loginActivity

    have you declared this activity in your AndroidManifest.xml?
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-27
      相关资源
      最近更新 更多