Java 无法从android.app.Application强制转换为自定义类型

Java 无法从android.app.Application强制转换为自定义类型,java,android,xml,Java,Android,Xml,我创建了一个类来保存应用程序范围的变量。我让它扩展了活动,甚至将其包含在清单中,但我仍然收到以下错误: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.blacksmith/com.example.blacksmith.MainActivity}: java.lang.ClassCastException: android.app.Application cannot be cast t

我创建了一个类来保存应用程序范围的变量。我让它扩展了活动,甚至将其包含在清单中,但我仍然收到以下错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.blacksmith/com.example.blacksmith.MainActivity}: java.lang.ClassCastException: android.app.Application cannot be cast to com.example.blacksmith.GlobalVars
下面是课堂:

package com.example.blacksmith;

import android.app.Application;

public class GlobalVars extends Application {

    private Boolean DefaultEncrypt;
    private String Password;

    public GlobalVars(){
        DefaultEncrypt = true;
    }

    public void setDefaultEncrypt(Boolean is){
        DefaultEncrypt = is;
    }

    public Boolean getDefaultEncrypt(){
        return DefaultEncrypt;
    }

    public void setPassword(String pass){
        Password = pass;
    }
    public String getPassword(){
        return Password;
    }

}
以下是android清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.blacksmith"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="17"
        android:targetSdkVersion="19" />


    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="Blacksmith"
            android:theme="@android:style/Theme.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".PasswordCreatorActivity"
            android:label="@string/title_activity_password_creator" >
        </activity>
        <activity
            android:name=".LoginActivity"
            android:label="@string/title_activity_login" >
        </activity>


    </application>

    <application android:icon="@drawable/ic_launcher"
             android:label="@string/app_name"
             android:name=".application.GlobalVars">

     </application>


</manifest>
注意:我尝试了这个.getApplication()和getApplication(),但两者都不起作用

我做错了什么?我该如何修复它


提前感谢。

我不是100%确定,但您有两个应用程序节,请尝试移动/替换下列项目:

   <application android:icon="@drawable/ic_launcher"
             android:label="@string/app_name"
             android:name=".application.GlobalVars">

     </application>

在原始应用程序节中:

  <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:name=".application.GlobalVars" 
   >

        <activity
            android:name=".MainActivity"
            android:label="Blacksmith"
            android:theme="@android:style/Theme.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".PasswordCreatorActivity"
            android:label="@string/title_activity_password_creator" >
        </activity>
        <activity
            android:name=".LoginActivity"
            android:label="@string/title_activity_login" >
        </activity>


    </application>


您的应用程序必须包含正在运行的活动,因此您需要从清单中删除第二个应用程序节点,并将第一个应用程序的名称设置为
GlobalVars
如果您将此作为答案,我将进行检查您可以检查nPn答案,是否正确too@MoshErsan,谢谢,但如果你的评论在我的回答之前,请随意添加答案并让OP接受
  <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:name=".application.GlobalVars" 
   >

        <activity
            android:name=".MainActivity"
            android:label="Blacksmith"
            android:theme="@android:style/Theme.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".PasswordCreatorActivity"
            android:label="@string/title_activity_password_creator" >
        </activity>
        <activity
            android:name=".LoginActivity"
            android:label="@string/title_activity_login" >
        </activity>


    </application>