不能转换为应用与getApplication方法 [英] Can't cast to Application with getApplication method
本文介绍了不能转换为应用与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:机器人=http://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_STORAGE/> <应用机器人:标签=@字符串/ 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
机器人:图标=@绘制/一
机器人:名字=应用程序。>
您需要在您的清单指定要使用您的自定义应用程序。
下面是完整的的AndroidManifest.xml
<?XML版本=1.0编码=UTF-8&GT?;
<清单的xmlns:机器人=http://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_STORAGE/> <应用
机器人:名字=应用程序
机器人:标签=@字符串/ 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屋!
查看全文