安卓中出现过的一些容易被忽略的异常整理
作者:pigdreams 发布时间:2023-12-17 06:27:53
1.在外部开启activity时需要新开一个task,从service里开启activity时出现了这个异常。
W/System.err: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
W/System.err: at android.app.ContextImpl.startActivity(ContextImpl.java:944)
W/System.err: at android.app.ContextImpl.startActivity(ContextImpl.java:931)
表示要添加一个Flag,建议的FLAG_ACTIVITY_NEW_TASK是一种activity启动方式,创建一个新的activity.
2.在setAdapter()之后加addHeaderView()会发生异常.
When first introduced, this method could only be called before setting the adapter with setAdapter(ListAdapter). Starting with KITKAT, this method may be called at any time.
KITKAT:October 2013: Android 4.4, KitKat, another tasty treat. android 4.4之后可以在任何地方调用,4.4之前的版本都会报错。
W/System.err: java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called.
W/System.err: at android.widget.ListView.addHeaderView(ListView.java:257)
W/System.err: at android.widget.ListView.addHeaderView(ListView.java:286)
3.TextView.setText()只能放charsequence类的参数,如果放的是整型数字,会报如下错误。
出现这个异常的原因的setText()里也可以放字符串资源id,如果放的是整形则会去R文件里找这个id对应的字符串,所以会出现NotFoundException的异常,即是找不到这个资源id所对应的文字。
注:CharSequence类的子类有String,StringBuffer,StringBuilder
E/InputEventReceiver: Exception dispatching input event.
E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
E/MessageQueue-JNI: android.content.res.Resources$NotFoundException: String resource ID #0x28
4.spinner设置监听问题
如果用onItemClickListener会发生异常,异常如下。
setOnItemClickListener cannot be used with a spinner.
应该用onItemSelectedListener,这是一个很容易就会踩的坑。
W/System.err: java.lang.RuntimeException: Unable to start activity
java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner.
W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
W/System.err: at android.app.ActivityThread.access$600(ActivityThread.java:141)
W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err: at android.os.Looper.loop(Looper.java:137)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5041)
W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err: at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
W/System.err: at dalvik.system.NativeStart.main(Native Method)
W/System.err: Caused by: java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner.
5.在service里调用progressDialog.show()方法时,会出现异常
如果没有将progress设为可悬浮在其它应用上方,并设置相应的权限,那么在service等其它组件中调用dialog.show()时,会无法获得当前windows,故无法正常显示dialog.
W/System.err: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
W/System.err: at android.view.ViewRootImpl.setView(ViewRootImpl.java:571)
W/System.err: at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:246)
W/System.err: at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
W/System.err: at android.app.Dialog.show(Dialog.java:281)
//context传入为application
progressDialog = new ProgressDialog(context);
progressDialog.setMessage(msg);
progressDialog.setCancelable(cancelable);
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
来源:https://blog.csdn.net/pigdreams/article/details/54576931
猜你喜欢
- C#与Java相比较从整体上来看,c#和java及其相似,甚至超过了c#与c、c++的相似程度,下面是两种语言的比较。两者都能编译成跨平台,
- 最近项目上需要实现蓝牙传输apk的一个功能,能够搜索周围的蓝牙手机并分享文件。从需求上讲android手机自带的蓝牙传输模块就可以满足需要了
- Android Fragment滑动组件ViewPager的实例详解1适配器FragmentPagerAdapter的实现对于Fragmen
- 这节主要完成一些基本的增删改查以及Service、Dao和Action的抽取。1. Service层的抽取  
- 常用配置ObjectMapper objectMapper = new ObjectMapper();objectMapper.config
- 话说,最近一次系统维护 用JS读取导入Excel中的实验数据,出现被自动四舍五入。后来到客户现场听客户反馈 Excel实验数据要
- 现假设某个公司采用公用电话来传递数据,数据是四位的整数,在传递过程中是加密的。加密规则是每位数字都加上5,然后再用除以10的余数代替该数字,
- HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 实现了 Map 接口,根据键的 HashCod
- 本文实例讲述了Android TextView显示Html类解析的网页和图片及自定义标签。分享给大家供大家参考,具体如下:Android系统
- 有时候因为安全问题,需要把配置文件的中数据库用户名密码由明文改成密文,大多数其实是为了应付甲方而已。1.pom.xml引入依赖<dep
- 本文实例为大家分享了Android多媒体之画画板开发的具体代码,供大家参考,具体内容如下先看看效果:其实画画板的原理很简单,就是首先记录下按
- 背景:SpringMVC如何响应json格式的数据?技术实现方式1:在Controller使用@RestController注解方式2:在C
- 现在语音识别已经被广泛的应用到各个领域中,在Unity开发中,语音识别也非常受欢迎。大部分人都会选择科大讯飞的语音识别功能,但是在一些小的项
- 效果自定义密码输入框,项目的一个界面需求,我把这个自定义的输入框提取出来作为这次内容的题目。输入前: 输入后: 输入1个
- 场景重现:1.微信小程序向后台发送请求 ——而后台web采用的springSecuriry没有token生成,就会拦截请求,,所以小编记录下
- Java操作redis设置第二天凌晨过期场景在做查询数据的时候,遇到了需要设置数据在redis中第二天过期的问题,但是redis又没有对应的
- 1.File对象java封装的一个操作文件及文件夹(目录)的对象。可以操作磁盘上的任何一个文件和文件夹。2.创建文件方式一:根据路径构建一个
- springboot 排除redis的自动配置因为要配置一个redis链接,所以将系统自带的配置排除,分别是RedisAutoConfigu
- 封面图下个季度的目标是把前端监控相关的内容梳理出来,梳理出来之后可能会在公司内部做个分享~Flutter应用程序既括代码也包括一些其他的资产
- SpringBoot 工厂模式自动注入Map一、建立工厂类public interface AnimalFactory { S