Activity无法转换为android.app.Application

时间:2017-06-05 07:15:21

标签: java android classcastexception

当我启动应用程序时,强制关闭

这是 LogCat

java.lang.RuntimeException: Unable to instantiate application com.blocktrekacademy.officialblocktrek.Authentication: java.lang.ClassCastException: com.blocktrekacademy.officialblocktrek.Authentication cannot be cast to android.app.Application

[更新]:这是我的 AndroidManifest.xml

    ...
    <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=".Authentication"
            android:label="@string/title_activity_authentication"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

这是我的 Authentication.java

package com.blocktrekacademy.officialblocktrek;

import ...

public class Authentication extends AppCompatActivity {
    ...

1 个答案:

答案 0 :(得分:0)

首先,删除android:name=".Authentication"代码中的<application>属性。

您的Authentication课程为Activity,而不是Application。所以,你必须这样声明:

<application>

    ...

    <activity android:name=".Authentication"
      <intent-filter>
          <action android:name="android.intent.action.MAIN"/>
          <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
    </activity>

</application>

intent-filter将活动声明为&#34; main&#34;活动,因此它将在您的应用启动时启动。