举例说明关于android编程中遇到的java.lang.ClassCastException: android.app.Application问题的原因及解决办法

本文介绍了一个关于Baidu Map API使用过程中遇到的ClassCastException错误,并详细解释了错误的原因及解决方法。主要是因为在onResume()方法中尝试将Application强转为BMapApiDemoApp类型,但未在AndroidManifest.xml文件中正确指定Application类。

LogCat中的错误提示如下:

 java.lang.RuntimeException: Unable to resume activity {com.baidu.map/com.baidu.map.BaiduMapApiActivity}: java.lang.ClassCastException: android.app.Applicat

Caused by: java.lang.ClassCastException: android.app.Application

 

错误原因:

protected void onResume(){
     BMapApiDemoApp app=(BMapApiDemoApp)this.getApplication();
     if(!app.m_bKeyRight){//如果验证没有通过,则提示输入正确的授权key值
      TextView text=(TextView)findViewById(R.id.text_Info);
      text.setText("请在BMapApiDemoApp.java文件中输入正确的授权Key !\r\n"+"申请地址:
http://dev.baidu.com/wiki/static/imap/key/");
      text.setTextColor(Color.RED);
     }
     super.onResume();
    }

 

在上面这段代码中用到了
     BMapApiDemoApp app=(BMapApiDemoApp)this.getApplication();
这一句,却没有在AndroidManifest.xml中的application中添加

android:name=".BMapApiDemoApp"

这句话。

 

解决办法,在AndroidManifest.xml中的application中添加上

android:name=".BMapApiDemoApp"

即可。

09-25 11:38:01.158041 5184 5184 W Bundle : Attempt to cast generated internal exception: java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String at android.os.BaseBundle.getString(BaseBundle.java:1448) at com.oplus.util.OplusContextUtil.isOplusStyleInApplication(OplusContextUtil.java:197) at com.oplus.util.OplusContextUtil.isOplusOSStyle(OplusContextUtil.java:128) at com.oplus.util.OplusContextUtil.isOplusOSStyle(OplusContextUtil.java:221) at com.oplus.util.OplusFontUtils.initVariationFontVariable(OplusFontUtils.java:543) at com.oplus.font.OplusFontManager.initVariationFontVariable(OplusFontManager.java:168) at oplus.android.OplusCommonInjector.onCreateForApplication(OplusCommonInjector.java:78) at android.app.ApplicationExtImpl.hookOnCreate(ApplicationExtImpl.java:29) at android.app.Application.onCreate(Application.java:278) at com.android.printspooler.MyApplication.onCreate(Unknown Source:0) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1401) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:8627) at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2792) at android.os.Handler.dispatchMessage(Handler.java:115) at android.os.Looper.loopOnce(Looper.java:298) at android.os.Looper.loop(Looper.java:408) at android.app.ActivityThread.main(ActivityThread.java:9952) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:613) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074)
最新发布
09-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值