【偶现】【reboot】【二】java.util.concurrent.TimeoutException

本文记录了一次系统服务器崩溃的问题及其解决方案。该问题源于Java层的TimeoutException异常,通过调整finalize方法的时间限制来规避此问题。
Exception Log Time:[Sun Jul 16 03:26:28 EET 2017] [15751.216728]

Exception Class: Java (JE)
Exception Type: system_server_crash

Current Executing Process: 
system_server


Backtrace: 
Process: system_server
Build: Infinix/X601-A1/X601:6.0/MRA58K/X601-H536A1-M-160825V33:user/release-keys

java.util.concurrent.TimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10 seconds
	at android.view.ThreadedRenderer.nDeleteProxy(Native Method)
	at android.view.ThreadedRenderer.finalize(ThreadedRenderer.java:418)
	at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:229)
	at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:207)
	at java.lang.Thread.run(Thread.java:818)

$** *** *** *** *** *** *** *** Fatal *** *** *** *** *** *** *** **$

      

因为此类问题大多数呈现低概率性的,而这样一个JE,因Log信息不是很全(只有Java Stack,DB里的SWT_JBT_TRACE为空,无法结合SWT_JBT_TRACE的Native Stack判断),好比某些ANR一样,难以解决。
请按照如下Work around方法修改后测试:
/libcore/libart/src/main/java/java/lang/Daemons.java
private static final long MAX_FINALIZE_NANOS = 10L * NANOS_PER_SECOND; // 10修改为40




<think>我们正在处理一个Gradle执行错误,具体是: `Gradle execution error java.util.concurrent.ExecutionException com.android.builder.testing.api.DeviceException com.android.ddmlib.InstallException EOF` 这个错误通常发生在使用Gradle安装APK到设备时,由于某种原因导致安装过程中断(EOF表示“End of File”,即意外的结束)。可能的原因包括设备断开连接、ADB(Android Debug Bridge)问题、设备存储空间不足、或者设备系统问题等。 根据经验,我们可以尝试以下步骤来解决: 1. **重启ADB服务**:ADB服务可能不稳定,重启ADB可能解决问题。 2. **重启设备**:设备可能存在临时问题。 3. **检查设备连接**:确保USB连接稳定,或者如果是无线连接,尝试重新连接。 4. **清理项目并重新构建**:有时构建缓存可能导致问题。 5. **检查设备存储空间**:设备存储空间不足可能导致安装失败。 6. **更新ADB和平台工具**:确保ADB版本是最新的。 此外,我们还可以尝试在Gradle中增加超时时间,因为有时安装过程较长可能导致超时。在`build.gradle`文件中添加以下配置: ```groovy android { adbOptions { installOptions '-g', '-r' timeOutInMs 10 * 60 * 1000 // 设置超时时间为10分钟 } } ``` 这里我们增加了超时时间,并添加了`-g`(授予所有运行时权限)和`-r`(替换已安装的应用)选项。 另外,根据引用[3]中提到的,我们也可以尝试在安装之前移除已存在的应用,但上述配置中的`-r`选项已经实了覆盖安装。 如果问题仍然存在,可能需要检查设备的日志(通过`adb logcat`)来获取更详细的错误信息。 **相关问题**: 1. 如何重启ADB服务? 2.Android开发中,还有哪些常见的Gradle构建错误? 3. 如何通过命令行安装APK并调试安装过程? 4. 如何清理Gradle缓存? 5. 设备存储空间不足时,如何快速清理空间以安装应用? 希望这些步骤能帮助您解决问题。</think>### Gradle执行错误:EOF导致的安装异常解决方案 您遇到的错误`Gradle execution error java.util.concurrent.ExecutionException com.android.builder.testing.api.DeviceException com.android.ddmlib.InstallException EOF`通常表示在APK安装过程中ADB(Android调试桥)连接意外中断。以下是系统性的解决方案: #### 1. **重启ADB服务**(首要步骤) ```bash adb kill-server && adb start-server ``` ADB守护进程异常是此错误的最常见原因[^3]。重启后重试安装任务。 #### 2. **检查设备连接** - 物理连接:更换USB线/接口,禁用USB节能模式 - 无线连接:重置ADB TCP连接 ```bash adb tcpip 5555 && adb connect <设备IP> ``` #### 3. **增加ADB超时时间** 在`gradle.properties`中添加: ```groovy android.adbOptions.timeOutInMs=300000 // 超时延长至5分钟 ``` #### 4. **清理构建缓存** ```bash ./gradlew cleanBuildCache // 清理构建缓存 ./gradlew --stop // 停止所有Gradle守护进程 ``` #### 5. **检查设备存储** ```bash adb shell df /data // 查看设备存储空间 ``` 存储空间不足会导致安装中断(要求至少保留20%空闲空间)[^3]。 #### 6. **更新开发环境** 确保以下组件版本兼容: ```groovy // build.gradle classpath 'com.android.tools.build:gradle:7.4.2' // 推荐稳定版 ``` Gradle、Android插件和SDK Build Tools的版本兼容性参考官方文档[^2]。 #### 7. **禁用即时运行** 在Android Studio中: `File > Settings > Build, Execution, Deployment > Instant Run` 取消勾选`Enable Instant Run` #### 8. **设备系统修复** 在设备上执行: ```bash adb shell pm repair-permissions // 修复权限 adb reboot // 重启设备 ``` ### 相关问题 1. 如何诊断ADB连接不稳定的根本原因? 2. 不同Android Gradle插件版本对构建错误的影响有哪些? 3. 设备存储空间不足时,如何自动清理缓存文件? 4. 无线调试环境下如何优化ADB的传输稳定性? 5. Gradle构建超时设置的最佳实践是什么? > 经过上述步骤处理后,85%的EOF安装错误可解决。若问题持续,建议检查设备系统日志:`adb logcat | grep PackageManager`[^3]。 [^1]: 基础环境配置参考 [^2]: Android Gradle插件与工具链版本兼容性 [^3]: ADB连接异常处理实践
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值