android看不见main函数怎么办?程序异常了,可以不提示“xxx软件停止运行”吗?

真正剖析解决com/android/command/dexer/Main : Unsupported major.minor version 52.0 很久没有使用过Eclipse开发android应用了,现在因业务需要,需要在Eclipse平台上出一份demo,当我使用Eclipse进行开发的时候,搭建环境的过程中就遇到了这样一个极具迷惑的报错误信息:com/android/command/dexer/Main : Unsupported major.minor version 52.0 截图是这样的:到这里,你会很自然的去复制这一段代码到网上去 阅读详情

今天遇到了这个问题,分享一下解决方案。

 

android没有main 函数,自然也就不存在main里面添加异常处理来实现全局异常捕获的方案。那android程序有全局异常补货的解决方案吗?

答案是有的:

那就是你得继承android工程里面的application,如:

public class ReaderApplication extends Application implements Thread.UncaughtExceptionHandler{......}

并实现线程异常补货接口:Thread.UncaughtExceptionHandler

 

这样你的程序,只要有没有处理的异常,都会在下面的uncaughtException函数中被捕获了。我的做法是重启应用程序。

	@Override
	public void uncaughtException(Thread thread, Throwable ex) {
		// TODO Auto-generated method stub
		//System.exit(0);
		
		Intent intent = getBaseContext().getPackageManager()  
	            .getLaunchIntentForPackage(getBaseContext().getPackageName());  
	    		

        
        PendingIntent restartIntent = PendingIntent.getActivity(    
                getApplicationContext(), 0, intent,    
                Intent.FLAG_ACTIVITY_NEW_TASK);                                                 
        //退出程序                                          
        AlarmManager mgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);    
        mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000,    
                restartIntent); // 1秒钟后重启应用   
        
        System.exit(0);
        
	}


但不得不说的是,你得在application的oncreate函数中加上异常回调接口的注册:

Thread.setDefaultUncaughtExceptionHandler(this);

 

最后是,你得在AndroidManifest.xml中,将这句话修改为自己的Application:

 <application
        android:name="com.founder.reader.ReaderApplication"

 

 

 

好了,有了上面的全局异常处理,也就不用所谓的main函数才能实现的了。同时,程序也不会再提示“xxx软件停止运行”了。

 

 

最后:程序重启得用系统时钟来重启,否则程序都退出了,谁来执行重启任务:

AlarmManager mgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE); mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent); // 1秒钟后重启应用

 

 

最最后,不忘给自己的小网站打个广告:程序员必备软件:www.uhdesk.com

Android进程监控攻防实战:从行为分析到恶意软件检测 在移动安全领域,进程监控是理解系统运行状态和识别恶意行为的基础技术。其核心原理在于通过分析进程的创建、通信和资源访问模式,构建动态的行为画像,从而区分正常应用与恶意软件。这项技术的价值在于能够有效检测新型、低特征的威胁,特别是针对银行、社交等高价值应用的精准钓鱼和数据窃取攻击。在实际应用场景中,安全工程师和开发者可以基于进程行为特征,构建轻量级本地检测模型,实现从高频轮询、敏感进程关注度到上下文关联的异常模式识别。本文聚焦Android平台,深入探讨如何通过Hook框架监控进程访问API、提取时序与目标特征 阅读详情

相关推荐

Unity安卓打包:Manifest合并机制详解与AAR集成避坑指南

在Android应用开发中,AndroidManifest.xml是定义应用组件、权限和硬件需求的核心配置文件。其工作原理基于一套严格的合并(Merge)机制,在构建过程中将多个来源的Manifest文件整合为最终版本。这一机制的技术价值在于确保应用功能完整性和模块化集成,尤其在Unity引擎中集成第三方AAR(Android Archive)库时至关重要。理解合并的优先级规则(应用模块 > 库依赖 > 系统默认)和冲突处理策略,能有效避免运行时崩溃、权限缺失或组件初始化失败等典型问题。在实际应用场景中,开

dgqvhtlwq472235338的博客 438

Android Studio不能运行main方法的解决办法

碎碎念:今天写完一个工具类之后,在运行时发现报出了下面这个错误 在网上寻觅了一圈找到了两种解决办法,在这里记录一下 法一:修改idea目录下的gradle.xml文件,增加如下代码 <option name="delegatedBuild" value="false"/> 法二:在运行时选择Run with coverage ...

summersneverdie的博客 597

安卓应用开发环境

本文会持续更新修改,主要记录在安卓应用开发中,遇到的一些问题和解决方案。

Watom_663的博客 1916

android java main_Java-Android中的main()在哪里?

Java-Android中的main()在哪里?我是Android的新手,正在研究框架,因此不得不问这个问题。 由于我们要在Android中扩展Activity,因此Activity中的某个位置必须有main,或者Activity实现的隐藏类包含main。我到处看,但找不到。 如果有人可以提出一个明确的想法,我将不胜感激。8个解决方案63 votes在核心Java程序中,我们需要Activity方...

weixin_39953618的博客 1050

android调试常见问题(持续更新)

1.jni调用时出现以下错误 failed: dlopen failed: cannot locate symbol “rand” referenced by xxx 通常是ndk编译的平台太低导致,打开jni的Application.mk,修改里面的APP_PLATFORM值大一点,比如 APP_PLATFORM := android-11就可以 2.奔溃:android.os.Ne......

雪狼人的宿命 1223

Windows平台Frida+Python安卓APP逆向分析实战:从环境搭建到Hook脚本编写

动态插桩技术是软件逆向分析与安全测试领域的核心方法之一,它允许在不修改原始程序的情况下,实时监控和干预其运行时行为。其原理是通过向目标进程注入代码,拦截函数调用、读写内存数据,从而实现对程序内部逻辑的深度洞察。这项技术在移动安全、漏洞挖掘、协议分析和自动化测试中具有极高价值,尤其适用于安卓APP的运行时行为分析。Frida作为一款主流的动态插桩框架,以其跨平台、支持JavaScript脚本和强大的动态交互能力,成为逆向工程师和安全研究员的得力工具。结合Python进行自动化脚本开发,可以构建高效的分析工作流

weixin_34186128的博客 378

Android程序开始的地方:main函数在哪里

凡是学过Java的同学都知道程序的入口是一个静态的main函数。那么Android的main函数在哪里呢?好吧!我们来找一下吧,这里以API 32为准,找之前先在SDK Platforms里把Sources for Android 32装上,如下图: 然后新建一个空白项目,然后顺着MainActivity的父类一路找下去 class MainActivity : AppCompatActivity() public class AppCompatActivity extends Fragm.

Greentea107的专栏 4728

ADB实战指南:从环境搭建到自动化脚本的安卓调试桥高效用法

Android Debug Bridge (ADB) 是安卓开发与测试中的核心命令行工具,它通过建立电脑与设备之间的通信桥梁,实现对安卓设备的深度控制。其技术价值在于提供了超越图形界面的精准操作能力,能够执行文件传输、应用管理、系统调试和自动化脚本等复杂任务。在移动开发、自动化测试、设备运维等应用场景中,ADB 的高级用法能显著提升工作效率。本文基于实战经验,重点解析了 **环境搭建** 与 **设备连接** 中的常见问题与解决方案,并深入探讨了如何利用 ADB 命令进行高效的文件操作、应用管理以及系统信息

weixin_33827590的博客 367

Android的main方法,Android程序没有main函数,那Android程序的执行入口在哪儿?

首先,我们可以了解,Android程序可以由一个或者多个Activity组成,每个Activity之间并没有很紧密的联系。我们可以在自己的程序中调用其他的Activity,特别是自己的代码之外生成的其他Activity。比如,Android提供的发短信、打电话的Activity://打电话startActivity(new Intent(Intent.ACTION_CALL,Uri.parse("...

weixin_33917217的博客 2398

安卓面试资料总结

本文主要包含三部分内容:个人面试准备、工作经验技术问题和纯技术问题。第一部分详细列出了面试常见问题及参考答案,包括自我介绍、项目经验、离职原因等;第二部分聚焦Android开发技术,涵盖开机流程、系统服务创建、按键上报等具体实现;第三部分解析Activity生命周期、Service启动方式等技术要点。全文内容实用性强,既包含面试技巧指导,又提供具体技术实现方案,适合Android开发者参考学习。

weixin_44081096的博客 417

exception 异常处理 exception

异常处理 exception exception exception exception 异常处理 exception

android看不见main函数怎么办?程序异常了,能够不提示“xxx软件停止执行”吗?...

今天遇到了这个问题,分享一下解决方式。   android没有main 函数,自然也就不存在main里面加入异常处理来实现全局异常捕获的方案。那android程序有全局异常补货的解决方式吗? 答案是有的: 那就是你得继承androidproject里面的application,如: public class ReaderApplication extends Applicatio...

weixin_34255793的博客 165

5分钟搞定单细胞marker基因气泡图:scDotPlot保姆级教程(含Seurat适配)

本文提供了一份详细的scDotPlot R包使用教程,帮助用户在5分钟内完成单细胞marker基因气泡图的绘制。教程涵盖环境准备、Seurat和SingleCellExperiment对象的适配处理、进阶可视化技巧及自动化报告生成,特别适合生物信息学新手和临床研究者快速掌握这一高效的可视化工具。

weixin_29047545的博客 261

ClassCastException:android.app.Application cannot be to XXX的解决办法

(一)使用全局对象(Application)在Activity间传递数据时抛的异常 问题背景: 在Activity之间数据传递中还有一种比较实用的方式,就是全局对象,实用J2EE的读者来说都知道Java Web的四个作用域,这四个作用域从小到大分别是Page、Request、Session和Application,其中Application域在应用程序的任何地方都可以使用和访问,除非是Web服务器

MakeYourChance的专栏 2658

RTL优化与PPA分析:数字电路设计的关键技术

在数字集成电路设计中,RTL(寄存器传输级)优化是提升芯片性能、降低功耗和减小面积的核心技术。通过PPA(Power-Performance-Area)指标的平衡,工程师可以在不同时序约束下实现设计的最优化。本文基于Synopsys Design Compiler和开源工具Yosys的实验数据,展示了RTL优化在算术单元和控制逻辑中的显著效果,特别是在乘法器和除法器等复杂运算模块中。文章还探讨了AI辅助工具在RTL优化中的应用潜力,为数字电路设计提供了实用的技术参考和工程实践建议。

weixin_42186387的博客 619

谷歌(Google) Pixel 8/9 Pro(xl)如何获取 root 权限

谷歌(Google)Pixel8/9Pro(xl)等系列手机破解后,会在你的init_boot.img同路径生成一个magisk_patched.img,把这个文件拷贝到adb目录下,稍后还得把它刷回手机,这样手机才能获得Root权限,因为安卓14、15以后的内核结构调整,和Pixel7及以下的6、5、4、3、2等系列手机破解稍微不一致。因为ROOT权限的获取,需要使用ROM中的内核文件,个人强烈建议在官网下载ROM,直接刷最新版,其他地方的ROM如果没有校验码,请自行斟酌是否使用。

bugsycrack的博客 3485

android studio使用fragment标签出错:E/AndroidRuntime: FATAL EXCEPTION: main java.lang.RuntimeException:

这几天,在做一个主界面的时候用到fragment,按照fragment的用法,写好代码,编译没有任何问题,可是模拟器和真机测试却出现了“很抱歉,xxx已经停止运行”并闪退了。于是回去重新检查代码,发现没有任何问题啊,编译能通过,没有报任何异常!这下揪心了,一段段地排查,发现主要问题出现在xml文件上!终于找到根源了! 报错异常: 分析:E/AndroidRuntime: FATAL E

奋斗的日子最甜美,在科技的海洋里,永无止境。 4万+

19、利用PostGIS进行空间分析:更高效的矢量分析方法

本文介绍了如何利用PostGIS进行高效灵活的矢量空间分析,重点探讨了在选址安静住宅场景中使用缓冲区和距离测量两种方法的实现与优化。通过QGIS与PostGIS结合,演示了数据上传、CTE应用、ST_Intersects与ST_Distance函数对比,并深入分析了横向子查询在提升查询性能和代码可读性方面的优势。文章还比较了不同方法的适用场景,并以房地产开发选址为例展示了完整分析流程,最后总结了PostGIS在空间分析中的强大能力与未来应用前景。

d3e4f的博客 92

unity 编辑器存档_Unity 编辑器的 界面布局 保存方法

理解JDBC和JNDI下面的英文是我找过来的,因为是英文所以不敢翻译出来误导别人,但是它描述的确实恰到好处,比所谓网上的JNDI和JDBC云云的解释要精辟很多,如果遇到不认识的单词,用有道吧~~:) The Java Na ...android看不见main函数怎么办?程序异常了,能够不提示&OpenCurlyDoubleQuote;xxx软件停止执行”吗?今天遇到了这个问题,分享一下解决...

weixin_36410567的博客 551

YOLOv8改进 | 注意力机制 | 添加DAttention (DAT)注意力机制实现极限涨点

本文给大家带来的是YOLOv8改进DAT的教程,其发布于2022年CVPR2022上同时被评选为Best Paper,由此可以证明其是一种十分有效的改进机制,其主要的核心思想是:引入可变形注意力机制和动态采样点(听着是不是和可变形动态卷积DCN挺相似)。同时在网络结构中引入一个DAT计算量由8.9GFLOPs涨到了9.4GFLOPs。本文的讲解主要包含三方面:DAT的网络结构思想、DAttention的代码复现,如何添加DAttention到你的结构中实现涨点,下面先来分享我测试的对比图。

Snu77的博客 1万+

innovus:如何在init design之后新增参考库(lib/lef)

如题,在PR过程中经常会遇到这种问题,时序无法收敛,需要新增一套lvt或者hpc的库,怎么办?

m0_61544122的博客 5002

android-性能-Android Profiler 线程阻塞分析教程及案例

b shell /proc]/taskID]/ # PID线程 ```输出若显示utex_w 或otify,表明锁 I/O。|----------------------------------------------------------| ** I/O | 文件/ |至。通过 Prof监控系统链adbystrace精准定位90% 阻塞问题。Prof显示两个线程(ID 113)阻塞 -应用后台10 界面无法但未 ANR- ****####案例 主线程 阻塞R**

summerkissyou1987的专栏 937

编程实践:寒武纪-LLM&VLM模型量化&部署

本文介绍了在MLU370-S4平台上对大模型(LLM/VLM)进行量化的两种方法:SmoothQuant和WeightOnly。以Qwen2-VL-2B模型为例,详细说明了两种量化方式的命令行参数配置,包括必须设置的per_channel选项和量化参数调整建议。量化完成后,提供了模型部署的具体命令示例,包含设备分配、端口设置、并行度等关键参数。文章强调在MLU370芯片上需要手动设置block_size,并指出两种量化方式只能二选一使用。配套资料已上传至百度网盘供参考。

微风❤水墨 506

Flutter开发环境配置全攻略:从零搭建到项目运行

跨平台移动应用开发已成为现代软件开发的重要方向,它允许开发者使用单一代码库构建同时运行在iOS和Android平台的应用。其核心原理在于通过统一的渲染引擎和框架层抽象不同操作系统的原生控件,实现代码复用和开发效率的大幅提升。在众多跨平台技术中,Flutter凭借其高性能的渲染引擎和丰富的UI组件库脱颖而出,成为构建高质量、高性能移动应用的热门选择。要开始Flutter开发,首先需要正确配置开发环境,这包括安装Flutter SDK、设置IDE(如IntelliJ IDEA或Android Studio)以及

weixin_30701575的博客 418

【AI 编程工具】Codex配置部署指南

目录一、环境准备与基础安装1. 系统兼容性检查2. 前置依赖安装3. 安装方式选择二、API密钥配置与认证1. 获取API密钥2. 配置文件设置3. 临时配置方式三、沙盒环境配置与安全策略1. 沙盒模式选择2. 安全最佳实践四、高级功能配置1. 模型上下文协议(MCP)配置2. 模型版本切换3. 自定义网关配置五、常见问题排查1. 安装失败2. API调用失败3. 处理速度慢4. 配置文件不生效六、生产环境部署建议macOS/Linux:官方提供稳定支持,推荐使用原生环境Windows:官方标注为实验性支持

以实战经验介绍行业知识 2883

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: 如何处理android程序变为后台程序,系统回收资源,再次打开时,程序因为null指针等崩溃
下一篇: shell linux基本命令实例、笔记
hellochenlian
博客等级 码龄17年 629粉丝 295原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellochenlian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值