Android APP打包后程序运行报错,求解,/AndroidRuntime: FATAL EXCEPTION: main。

Android APP打包后程序运行报错,求大神,/AndroidRuntime: FATAL EXCEPTION: main。

2022-06-21 16:33:39.826 8277-8277/com.sqsxiu.sampling_record E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.sqsxiu.sampling_record, PID: 8277
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sqsxiu.sampling_record/com.sqsxiu.sampling_record.activity.RaskListDetailsActivity}: java.lang.NullPointerException
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2944)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3079)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1836)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6702)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
     Caused by: java.lang.NullPointerException
        at java.io.Writer.<init>(Writer.java:88)
        at java.io.OutputStreamWriter.<init>(OutputStreamWriter.java:97)
        at com.example.print_sdk.PrintUtil.<init>(PrintUtil.java:56)
        at com.sqsxiu.sampling_record.activity.RaskListDetailsActivity.initPos(RaskListDetailsActivity.java:444)
        at com.sqsxiu.sampling_record.activity.RaskListDetailsActivity.onCreate(RaskListDetailsActivity.java:226)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
        at android.app.ActivityThread

Caused by: java.lang.NullPointerException
存在空指针异常
看下下面这几处的代码:

com.example.print_sdk.PrintUtil.<init>(PrintUtil.java:56)
        at com.sqsxiu.sampling_record.activity.RaskListDetailsActivity.initPos(RaskListDetailsActivity.java:444)
        at com.sqsxiu.sampling_record.activity.RaskListDetailsActivity.onCreate(RaskListDetailsActivity.java:226)
       

从题主贴出来的log日志可以看出来在 RaskListDetailsActivity的 444行的 initPos()的这个函数中用到了 com.example.print_sdk.PrintUtil 这个类来输出Log 信息,而给PrintUtil类调用的方法 入参为null,导致无法进行log输出而空指针异常。

解决方法:

1.对PrintUtil类调用的方法入参进行非空判断
2.可以临时注释该方法的调用(如果输出的内容仅仅是为了排查问题的话)

望采纳

public OutputStreamWriter(OutputStream out) {
    super(out);
    try {
        se = StreamEncoder.forOutputStreamWriter(out, this, (String)null);
    } catch (UnsupportedEncodingException e) {
        throw new Error(e);
    }
}

应该是你没有校验out这个吧,导致传入了空指针

出现了空指针异常,仔细检查一下代码

不止是空指针异常的问题,那个环境明显也得改

Unable to start activity ComponentInfo{com.sqsxiu.sampling_record/com.sqsxiu.sampling_record.activity.RaskListDetailsActivity}: java.lang.NullPointerException

你用了空指针引起的

检查注册表和Activity的xml有没有报错

空指针导致的页面无法打开,可以在报错堆栈中找到对应信息如下:

 Caused by: java.lang.NullPointerException
        at java.io.Writer.<init>(Writer.java:88)
        at java.io.OutputStreamWriter.<init>(OutputStreamWriter.java:97)
        at com.example.print_sdk.PrintUtil.<init>(PrintUtil.java:56)
        at com.sqsxiu.sampling_record.activity.RaskListDetailsActivity.initPos(RaskListDetailsActivity.java:444)
        at com.sqsxiu.sampling_record.activity.RaskListDetailsActivity.onCreate(RaskListDetailsActivity.java:226)

```java
在RaskListDetailsActivity的444行方法中排查,使用对象前进行判空操作、或者使用kotlin中的安全空可以避免类似的错误

错误空指针异常错误,你那里又个写的io流,那你可以断点调试看一下,读的io流是否正常,个人觉得是io流操作导致空指针异常,你一步一步跟踪可以定位问题

1.空指针异常,看代码报错位置是读写文件输入对象为空,没有做空判断

main方法中空指针异常 了,你看下调用RaskListDetailsActivity类的第226行和444行的代码,有没有空指针存在的可能,添加逻辑判断。同时可以参考如下链接试试
Android studio 报错E/AndroidRuntime: FATAL EXCEPTION: main_學點的博客-CSDN博客

有没有可能是代码逻辑的问题,检查一下 activity生命周期、方法执行顺序、io流开启时机、handle sendMessage时机之间有没有什么逻辑错误 ,只看报错日志的话没有办法确定问题到底出现在哪里。。。

建议楼主学一下debug代码调试,这种问题需要自己去单步调试加log去分析,一般有提示的问题都不难。
往上开发都是需要自己去学着解决问题

PrintUtil.java的56行传了null

你在哪里设置 ((java.io.OutputStream)globalMap.get("excel_output_stream")) ?

因为你没有为able变量设置那个值,因为你得到了空指针异常。请查看以下链接如何使用输出流。
https://help.talend.com/reader/KxVIhxtXBBFymmkkWJ~O4Q/orwGOyJ72nAubGeMxRyZ8w

可参考

Android studio 报错E/AndroidRuntime: FATAL EXCEPTION: main_學點的博客-CSDN博客 初学安卓开发的时候运行模拟器遇到报错不会怎么查看报错,在报错的一大串红色字体中看到特别的一句蓝色这一层,以为这个错误就是在这个文件夹中点击跳转到这个文件夹,他跳到了这一句以为就是这一句写错了,使劲往里面找错误,结果不是这一句的错误,跳到这里来是说明这里设置的这个视图里有错误,我们需要去这个视图里找错误来到这一个xml视图里怎么看也不知道是哪里写错了的回看报错的第一句E/AndroidRuntime: FATAL EXCEPTION: main,这个说的是一个致命异常,而这个异常综上所述是在xm https://blog.csdn.net/weixin_44542088/article/details/106102020

空指针异常,看看是不是运行环境的配置问题。

可以看出来是空指针异常导致的,看代码报错位置是读写文件输入对象为空,没有做空判断

可以参考这个

Android studio 报错E/AndroidRuntime: FATAL EXCEPTION: main_學點的博客-CSDN博客 初学安卓开发的时候运行模拟器遇到报错不会怎么查看报错,在报错的一大串红色字体中看到特别的一句蓝色这一层,以为这个错误就是在这个文件夹中点击跳转到这个文件夹,他跳到了这一句以为就是这一句写错了,使劲往里面找错误,结果不是这一句的错误,跳到这里来是说明这里设置的这个视图里有错误,我们需要去这个视图里找错误来到这一个xml视图里怎么看也不知道是哪里写错了的回看报错的第一句E/AndroidRuntime: FATAL EXCEPTION: main,这个说的是一个致命异常,而这个异常综上所述是在xm https://blog.csdn.net/weixin_44542088/article/details/106102020

试试这个

Android studio 报错E/AndroidRuntime: FATAL EXCEPTION: main_學點的博客-CSDN博客 初学安卓开发的时候运行模拟器遇到报错不会怎么查看报错,在报错的一大串红色字体中看到特别的一句蓝色这一层,以为这个错误就是在这个文件夹中点击跳转到这个文件夹,他跳到了这一句以为就是这一句写错了,使劲往里面找错误,结果不是这一句的错误,跳到这里来是说明这里设置的这个视图里有错误,我们需要去这个视图里找错误来到这一个xml视图里怎么看也不知道是哪里写错了的回看报错的第一句E/AndroidRuntime: FATAL EXCEPTION: main,这个说的是一个致命异常,而这个异常综上所述是在xm https://blog.csdn.net/weixin_44542088/article/details/106102020

如果其他人都没解决的话,可以联系我,包解决