文章目录

  • 一、报错信息
  • 二、解决方案

一、报错信息


2021-05-07 13:24:24.672 29512-29512/kim.hsl.a7_zip E/AndroidRuntime: FATAL EXCEPTION: mainProcess: kim.hsl.a7_zip, PID: 29512java.lang.RuntimeException: Unable to start activity ComponentInfo{kim.hsl.a7_zip/kim.hsl.a7_zip.MainActivity}: java.lang.IllegalThreadStateException: process hasn't exitedat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2951)at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)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:1816)at android.os.Handler.dispatchMessage(Handler.java:106)at android.os.Looper.loop(Looper.java:193)at android.app.ActivityThread.main(ActivityThread.java:6718)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:858)Caused by: java.lang.IllegalThreadStateException: process hasn't exitedat java.lang.UNIXProcess.exitValue(UNIXProcess.java:215)at kim.hsl.a7_zip.MainActivity.compress7z(MainActivity.kt:115)at kim.hsl.a7_zip.MainActivity.onCreate(MainActivity.kt:24)at android.app.Activity.performCreate(Activity.java:7144)at android.app.Activity.performCreate(Activity.java:7135)at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2931)at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086) 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:1816) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6718) 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:858)

问题描述 : 使用 Runtime.getRuntime().exec(cmd) 执行命令 , 如果实时打印出命令执行的命令行信息 , 使用如下代码 :

        var process: Process = Runtime.getRuntime().exec(cmd)// 读取命令执行过程数据var reader = BufferedReader(InputStreamReader(process.inputStream))while (true) {val line = reader.readLine()if (line != null) {Log.i(TAG, "$line")}else{break}}

执行完毕后 , 调用如下代码查询执行结果 , 报上述错误 ;

process.exitValue()

二、解决方案


出现问题原因 : 读取命令执行过程的 BufferedReader 没有关闭 ;

正确用法 :

        var process: Process = Runtime.getRuntime().exec(cmd)// 读取命令执行过程数据var reader = BufferedReader(InputStreamReader(process.inputStream))while (true) {val line = reader.readLine()if (line != null) {Log.i(TAG, "$line")}else{break}}reader.close()val exitValue = process.exitValue()

使用 BufferedReader 读取命令行执行过程 , 读取完毕后 , 及时关闭 BufferedReader ;

【错误记录】Android 中调用 Process 命令行执行指令 ( java.lang.IllegalThreadStateException: process hasn‘t exited )相关推荐

  1. Android中如何使用命令行查看内嵌数据库SQLite3

    转载博客:http://www.linuxidc.com/Linux/2011-06/37135.htm 在上图中,除了最后一个红色的方框,其它方框都是adb shell下的命令. [1]在Andro ...

  2. Java在eclipse中调用opencv时报错:java.lang.UnsatisfiedLinkError的解决方法

    昨天把Java+opencv的环境配置好后,迫不及待的进行测试...... 出师不利.... 第一个代码就有错误,代码如下: import org.opencv.core.*; import org. ...

  3. FFmpeg command line tool(Android中使用FFmpeg命令行)

    官网地址:ffmpeg.org/ Android端,不想编译,可以直接使用ffmpeg-android-java 关于转码: 网络限制了视频传输的带宽.由于带宽限制,这就要求我们在传输之前通过实时视频 ...

  4. 在Android项目中调用FFmpeg命令

    概述 FFmpeg,命令行非常强大.在PC机上,调用一行FFmpeg命令,就可以对视频文件进行剪切.合并.转码等功能.本文将介绍如何在Android中调用FFmpeg命令行. 编译 前面已经有两篇文章 ...

  5. python调用php命令行,python调用php函数 python怎样调用php文件中的函数详解

    前言 python调用php代码实现思路:php文件可通过在terminal中使用php命令行进行调用,因此可使用python开启子进程执行命令行代码.函数所需的参数可通过命令行传递. 测试环境 1. ...

  6. 在 Android 中调用二进制可执行程序(native executable )

    在 Android 中调用二进制可执行程序(native executable ) 前几天有需要在java代码中调用二进制程序,就在网上找了些资料,写点东西记录下. Android 也是基于linux ...

  7. android中的ping命令使用

    前言 在做Android开发时,有时我们需要知道设备的网络好不好,光看手机上的信号格数是不准确的,比如在广州南站,人那么多,如果带宽不够的话,虽然你看着信号是满格的,但是网速也会很慢,有些地方,人少, ...

  8. Android系统篇之—-Android中的run-as命令引出升降权限的安全问题(Linux中的setuid和setgid)

    一.前言 最近一周比较忙,没时间写东西了,今天继续开始我们今天的话题:run-as命令,在上周的开发中,遇到一个问题,就是在使用run-as命令的时候出现了一个错误,不过当时因为工作进度的问题,这问题 ...

  9. Android中的run-as命令引出升降权限的安全问题

    转载自:http://blog.csdn.net/jiangwei0910410003/article/details/51405631 一.前言 最近一周比较忙,没时间写东西了,今天继续开始我们今天 ...

最新文章

  1. Go 学习笔记(46)— Go 标准库之 fmt(输入/输出格式化参数、Printf/Fprintf/Sprintf区别、Println/Fprintln/Sprintln 区别)
  2. linunx获取命令帮助
  3. Docker logs 命令
  4. OPA 11 - how is check called in my iClickTheCreateButton
  5. 计算机原理eprom,eprom eeprom和flash储存器的工作原理及区别
  6. apache camel_轻量级的开源集成:Apache Camel还是Spring集成?
  7. Spring组件之一 JDBC Template
  8. php eval 安全性,php – 使用eval解析表单输入的方程式的最安全的方法
  9. Python程序设计语言基础05:函数和代码复用
  10. 再谈几种语言的运行速度比较:看第三方比较结论!
  11. 10g添加用户 oracle_linux安装oracle
  12. 什么是动作分析?动作分析的方法有哪些?
  13. CSS绘制自己的小摩尔
  14. matlab的kron函数(kronecker乘积)
  15. php网站微博帐号登录代码,redis+php实现微博(一)注册与登录功能详解
  16. 岩板铺地好吗_岩板铺大客厅路面好么 比800*800的地砖更美观大方又空气?
  17. 花飞花落花飘谢,红绡香断有谁怜!
  18. 科技爱好者周刊:第 90 期
  19. TCP /IP 之TCP和UDP
  20. Windos - 桌面图标管理

热门文章

  1. Ajax异步中文数据处理
  2. Java网络编程从入门到精通(14):多种多样的建立网络连接的方式
  3. CodeForces - 981G Magic multisets
  4. 团队-石头,剪刀,布-设计文档
  5. pre标签 首行会自动换行解决方案
  6. Javascript之学习笔记每日更新
  7. Docker 新网络 overlay 网络
  8. matlab mod()rem()
  9. 让IE6、IE7、IE8支持CSS3的圆角、阴影样式
  10. 理解 Delphi 的类(十一) - 深入类中的方法[8] - 抽象方法与抽象类