Android Studio Run app 报错

问题描述

今天在码代码时遇到一个莫名其妙的问题,问题是这样的:

不论 clean project、rebuild project 还是 make module 都能顺利执行,但是只要 Run app 就会报如下错误

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/home/connorlin/Program/jdk1.7.0_71/bin/java'' finished with non-zero exit value 134

问题分析

通常,看到 with non-zero exit value 134 首先想到的是依赖冲突了,但细心点能发现,依赖冲突一般是with non-zero exit value 1with non-zero exit value 2,此处却是134

再看Process 'command '/home/connorlin/Program/jdk1.7.0_71/bin/java'' finished with non-zero exit value 134 似乎是JDK相关。

那么,首先排除依赖冲突,因为之前是正常的,代码又没任何改动,是突然出现报错。再看到JDK,检查是否JDK配置出问题了,因为我同时装了sun JDKOpenJDK

问题定位

一次定位

开始查看java 版本:

java -version

结果显示:

java version "1.7.0_75"
OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~trusty1)
OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)

再看:

update-alternatives --config java

结果显示:

有 3 个候选项可用于替换 java (提供 /usr/bin/java)。

  选择       路径                                          优先级  状态
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      自动模式
* 1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      手动模式
  2            /usr/local/jdk/bin/java                          255       手动模式
  3            /usr/local/jdk1.6.0_30/bin/java                  255       手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:

证明JDK环境配置没错。

接着,把Android Studio JDK改为OpenJDK:

/home/connorlin/Program/jdk1.7.0_71
改为
/usr/lib/jvm/java-7-openjdk-amd64

再次编译 Run app,再次报错,但本次报错与上次不一样:

Error:Failed to complete Gradle execution.
Cause:
Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)

居然Gradle build daemon 异常,那肯定不是代码的问题了。

二次定位

后来,无意中发现在项目跟路径下有多个类似hs_err_pid11776.log 文件,其内容节选如下:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fcac7773d44, pid=11776, tid=140508865505024
#
# JRE version: OpenJDK Runtime Environment (7.0_75-b13) (build 1.7.0_75-b13)
# Java VM: OpenJDK 64-Bit Server VM (24.75-b04 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea 2.5.4
# Distribution: Ubuntu 14.04 LTS, package 7u75-2.5.4-1~trusty1
# Problematic frame:
# V  [libjvm.so+0x82ad44]  MoveAndUpdateClosure::do_addr(HeapWord*, unsigned long)+0xa4
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
#   http://icedtea.classpath.org/bugzilla
#

---------------  T H R E A D  ---------------

Current thread (0x00007fcac0023800):  GCTaskThread [stack: 0x00007fcac4f42000,0x00007fcac5043000] [id=11785]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x00000000007d0038

Registers:
RAX=0x00000000007d0020, RBX=0x00007fcac5041cb0, RCX=0x0000000000000000, RDX=0x00000000007d0020
RSP=0x00007fcac5041ba0, RBP=0x00007fcac5041be0, RSI=0x00000000007d0020, RDI=0x00000000c47529c0
R8 =0x00007fcaa5800000, R9 =0x00007fcac7d0b420, R10=0x00000000030c9100, R11=0x00007fcac850f810
R12=0x0000000000000001, R13=0x0000000000000008, R14=0x00007fcac007abe0, R15=0x00000000c47529b8
RIP=0x00007fcac7773d44, EFLAGS=0x0000000000010202, CSGSFS=0x0000000000000033, ERR=0x0000000000000004
TRAPNO=0x000000000000000e

通过查看,其中:

---------------  T H R E A D  ---------------

Current thread (0x00007fcac0023800):  GCTaskThread [stack: 0x00007fcac4f42000,0x00007fcac5043000] [id=11785]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x00000000007d0038

表明异常时正在运行GCTaskThread 垃圾回收线程,再看到后面还有一段:

VM Arguments:
jvm_args: -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=UTF-8 -Duser.country=CN -Duser.language=zh -Duser.variant 
java_command: org.gradle.launcher.daemon.bootstrap.GradleDaemon 2.10
Launcher Type: SUN_STANDARD

似乎是内存不足引起的。

问题解决

一次解决

尝试将 HeapSize 调大,在 app level的build.gradle中配置:

dexOptions {
    preDexLibraries = false
    javaMaxHeapSize "4g"   // 调大 HeapSize
}

很遗憾,问题依然! 那还原此修改,防止二次事故。

二次解决

实在没办法,那尝试重启大法吧!

当然,不是简单的重启,先要清除缓存再重启Android Studio。

Android Studio -> File -> Invalidate Caches / Restart ..

最后,发现重启大法果然好用,居然顺利跑起来了,目前为止没有再出现该问题。

问题结果

通过清除Android Studio缓存来解决该问题:

在 Android Studio 的 File 菜单中选择 Invalidate Caches / Restart ..来清理缓存并重启Android Studio。

Android Studio -> File -> Invalidate Caches / Restart ..

但个中缘由却并不清楚,暂且记录下来,望知情人士指教!

That's all!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,544评论 25 707
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,070评论 2 44
  • 没有哪个人是生来就甘于平凡的。 许多人在小时候的梦想都是做科学家,做宇航员,做明星,总而言之就是...
    棋舞弄清影阅读 600评论 0 0
  • 在六月的晴空,两万五千英尺的高空上你能看到什么? 我看到了南储,在半年前的谷歌卫星地图上,我看到了南储。 从液体运...
    Dr大心脏阅读 405评论 0 0
  • 去年年底在微微书吧吧主大会上,偶与吴律师相遇,这其中要感谢微微的吧主老李的引荐,几个月后我们有了第一个合作项目,就...
    阿渡SZ阅读 692评论 0 1