不能转换为应用与getApplication方法 [英] Can't cast to Application with getApplication method

查看:620
本文介绍了不能转换为应用与getApplication方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有类应用包含我的应用程序上下文
但是,当我整理我在这一行得到了在其他类中的错误

 应用程序=(APP)getApplication();

应用

 进口android.app.Application;
进口android.app.Notification;
进口android.app.NotificationManager;
进口android.app.PendingIntent;
进口android.content.Context;
进口android.content.Intent;
进口android.media.MediaPlayer;
进口android.support.v4.app.NotificationCompat;
进口android.util.Log;
进口com.example.Radio_KPI.R;
进口com.example.Radio_KPI.Utils.Const;公共类应用程序扩展应用{    私人的MediaPlayer播放器;
    私人NotificationManager经理;
    私人字符串curSong;
    私人语境Main_con;    公共语境getMain_con(){
        返回Main_con;
    }    公共无效setMain_con(上下文main_con){
        Main_con = main_con;
    }    公共字符串getCurSong(){
        返回curSong;
    }    公共无效setCurSong(字符串curSong){
        this.curSong = curSong;
    }    公共NotificationManager getManager(){
        返回经理;
    }    公共无效setManager(NotificationManager经理){
        this.manager =经理;
    }    公众的MediaPlayer getPlayer(){
        返回的球员;
    }    公共无效setPlayer(MediaPlayer的MPLAYER){
        this.player = Mplayer的;
    }}

错误:

  java.lang.ClassCastException:android.app.Application不能转换为com.example.Radio_KPI.Application.AppContext
        在com.example.Radio_KPI.Activities.Main.onCreate(Main.java:62)
        在android.app.Activity.performCreate(Activity.java:4531)
        在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071)
        在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2150)

AndroidManifest.xml中:

 <?XML版本=1.0编码=UTF-8&GT?;
<清单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
          包=com.example.Radio_KPI
          安卓版code =1
          机器人:=的versionName1.0>    <采用-SDK安卓的minSdkVersion =8/>
    <采用-SDK机器人:targetSdkVersion =14/>    <使用许可权的android:NAME =android.permission.INTERNET对/>
    <使用许可权的android:NAME =android.permission.WRITE_EXTERNAL_STORAG​​E/>    <应用机器人:标签=@字符串/ APP_NAME机器人:图标=@绘制/一>
        <活动机器人:名字=。Activities.Main
                  机器人:screenOrientation =画像
                  机器人:主题=@安卓风格/ Theme.NoTitleBar.Fullscreen
                  机器人:标签=@字符串/ APP_NAME>
            &所述;意图滤光器>
                <作用机器人:名字=android.intent.action.MAIN/>
                <类机器人:名字=android.intent.category.LAUNCHER/>
            &所述; /意图滤光器>
        < /活性GT;
        <活动机器人:名字=。Activities.About
                  机器人:screenOrientation =画像
                  机器人:主题=@安卓风格/ Theme.NoTitleBar.Fullscreen
                  机器人:标签=@字符串/ APP_NAME>
        < /活性GT;
        <活动机器人:Activities.SavedSongsNAME =
                  机器人:screenOrientation =画像
                  机器人:主题=@安卓风格/ Theme.NoTitleBar.Fullscreen
                  机器人:标签=@字符串/ savedSongs>
        < /活性GT;
        <服务
                机器人:名字=Services.MyService。>
        < /服务>
    < /用途>
< /清单>


解决方案

 <应用
    机器人:标签=@字符串/ APP_NAME
    机器人:图标=@绘制/一
    机器人:名字=应用程序。>

您需要在您的清单指定要使用您的自定义应用程序。

下面是完整的的Andr​​oidManifest.xml

 <?XML版本=1.0编码=UTF-8&GT?;
<清单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
          包=com.example.Radio_KPI
          安卓版code =1
          机器人:=的versionName1.0>    <采用-SDK安卓的minSdkVersion =8/>
    <采用-SDK机器人:targetSdkVersion =14/>    <使用许可权的android:NAME =android.permission.INTERNET对/>
    <使用许可权的android:NAME =android.permission.WRITE_EXTERNAL_STORAG​​E/>    <应用
    机器人:名字=应用程序
    机器人:标签=@字符串/ APP_NAME
    机器人:图标=@绘制/一>
        <活动机器人:名字=。Activities.Main
                  机器人:screenOrientation =画像
                  机器人:主题=@安卓风格/ Theme.NoTitleBar.Fullscreen
                  机器人:标签=@字符串/ APP_NAME>
            &所述;意图滤光器>
                <作用机器人:名字=android.intent.action.MAIN/>
                <类机器人:名字=android.intent.category.LAUNCHER/>
            &所述; /意图滤光器>
        < /活性GT;
        <活动机器人:名字=。Activities.About
                  机器人:screenOrientation =画像
                  机器人:主题=@安卓风格/ Theme.NoTitleBar.Fullscreen
                  机器人:标签=@字符串/ APP_NAME>
        < /活性GT;
        <活动机器人:Activities.SavedSongsNAME =
                  机器人:screenOrientation =画像
                  机器人:主题=@安卓风格/ Theme.NoTitleBar.Fullscreen
                  机器人:标签=@字符串/ savedSongs>
        < /活性GT;
        <服务
                机器人:名字=Services.MyService。>
        < /服务>
    < /用途>
< /清单>

I have class App which contain context of my Application. But when I compiled I got an error in other class in this line:

 App app = (App) getApplication();

Class App:

import android.app.Application;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import com.example.Radio_KPI.R;
import com.example.Radio_KPI.Utils.Const;

public class App extends Application {

    private MediaPlayer player;
    private NotificationManager manager;
    private String curSong;
    private Context Main_con;

    public Context getMain_con() {
        return Main_con;
    }

    public void setMain_con(Context main_con) {
        Main_con = main_con;
    }

    public String getCurSong() {
        return curSong;
    }

    public void setCurSong(String curSong) {
        this.curSong = curSong;
    }

    public NotificationManager getManager() {
        return manager;
    }

    public void setManager(NotificationManager manager) {
        this.manager = manager;
    }

    public MediaPlayer getPlayer() {
        return player;
    }

    public void setPlayer(MediaPlayer mPlayer) {
        this.player = mPlayer;
    }

}

Error:

java.lang.ClassCastException: android.app.Application cannot be cast to com.example.Radio_KPI.Application.AppContext
        at com.example.Radio_KPI.Activities.Main.onCreate(Main.java:62)
        at android.app.Activity.performCreate(Activity.java:4531)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2150)

AndroidManifest.xml:

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

    <uses-sdk android:minSdkVersion="8"/>
    <uses-sdk android:targetSdkVersion="14"/>

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <application android:label="@string/app_name" android:icon="@drawable/one">
        <activity android:name=".Activities.Main"
                  android:screenOrientation="portrait"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name=".Activities.About"
                  android:screenOrientation="portrait"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                  android:label="@string/app_name">
        </activity>
        <activity android:name=".Activities.SavedSongs"
                  android:screenOrientation="portrait"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                  android:label="@string/savedSongs">
        </activity>
        <service
                android:name=".Services.MyService">
        </service>
    </application>
</manifest>

解决方案

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

You need to specify in your manifest to use your custom Application.

Here is the complete AndroidManifest.xml

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

    <uses-sdk android:minSdkVersion="8"/>
    <uses-sdk android:targetSdkVersion="14"/>

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <application
    android:name=".App"
    android:label="@string/app_name"
    android:icon="@drawable/one">
        <activity android:name=".Activities.Main"
                  android:screenOrientation="portrait"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name=".Activities.About"
                  android:screenOrientation="portrait"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                  android:label="@string/app_name">
        </activity>
        <activity android:name=".Activities.SavedSongs"
                  android:screenOrientation="portrait"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                  android:label="@string/savedSongs">
        </activity>
        <service
                android:name=".Services.MyService">
        </service>
    </application>
</manifest>

这篇关于不能转换为应用与getApplication方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆