2014-03-24 36 views
0

我有一个应用程序,我一直在努力。它使用谷歌的appcompat Action Bar和Spinner导航,上周工作正常。ActionBar compat +微调提供SIGSEGV 11

今天,我重新编译和应用程序崩溃,只要我呼吁setNavigationMode(ActionBar.NAVIGATION_MODE_LIST)。

在logcat中,我看到一个SIGSEGV错误。

我已经能够通过使用ActionBar创建一个新的Android Studio项目来重现这个问题,这是一个带有Action bar微调器导航的空白活动,除了Android Studio生成的代码之外绝对没有什么。

我曾尝试使用以下组件尝试:
- Windows下的Android工作室0.50.0 8.1
- 安卓0.5.2工作室OSX下的小牛
- 实际的Android 2.3.4硬件
- Android 2.2的模拟器下Windows
- OS X下的Android 2.2 Emulator。

这个问题存在于编译器/平台的所有组合上。

我也一直在尝试在build.gradle中指定appcompat的特定版本。但是,无论我使用compile'c​​om.android.support:appcompat-v7:19.0.1'还是编译'com.android.support:appcompat-v7:19.0.0'

有没有人有什么线索可以在这里发生?从logcat的和模拟器

输出Windows下运行:

I/dalvikvm( 370): Could not find method android.content.pm.PackageManager.getActivityLogo, referenced from method android.support.v7.internal.widget.ActionBarView.<init> 
W/dalvikvm( 370): VFY: unable to resolve virtual method 312: Landroid/content/pm/PackageManager;.getActivityLogo (Landroid/content/ComponentName;)Landroid/graphics/drawable/Drawable; 
D/dalvikvm( 370): VFY: replacing opcode 0x6e at 0x008b 
I/dalvikvm( 370): Could not find method android.content.pm.ApplicationInfo.loadLogo, referenced from method android.support.v7.internal.widget.ActionBarView.<init> 
W/dalvikvm( 370): VFY: unable to resolve virtual method 308: Landroid/content/pm/ApplicationInfo;.loadLogo (Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable; 
D/dalvikvm( 370): VFY: replacing opcode 0x6e at 0x0099 
D/dalvikvm( 370): VFY: dead code 0x008e-0092 in Landroid/support/v7/internal/widget/ActionBarView;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;)V 
D/dalvikvm( 370): VFY: dead code 0x009c-00a0 in Landroid/support/v7/internal/widget/ActionBarView;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;)V 
I/DEBUG ( 31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
I/DEBUG ( 31): Build fingerprint: 'generic/sdk/generic/:2.2/FRF91/43546:eng/test-keys' 
I/DEBUG ( 31): pid: 370, tid: 370 >>> com.example.actionbartest.app <<< 
I/DEBUG ( 31): signal 11 (SIGSEGV), fault addr 00000002 
I/DEBUG ( 31): r0 00000000 r1 00000001 r2 00000001 r3 00000002 
I/DEBUG ( 31): r4 becab8a4 r5 0000aa50 r6 00116400 r7 00138eb0 
I/DEBUG ( 31): r8 becab914 r9 4208b814 10 4208b800 fp 00000000 
I/DEBUG ( 31): ip ad36ec18 sp becab868 lr ad349dbd pc a81144da cpsr 20000030 
I/DEBUG ( 31):   #00 pc 000144da /system/lib/libutils.so 
I/DEBUG ( 31):   #01 pc 00049dba /system/lib/libandroid_runtime.so 
I/DEBUG ( 31):   #02 pc 00049f10 /system/lib/libandroid_runtime.so 
I/DEBUG ( 31):   #03 pc 00013974 /system/lib/libdvm.so 
I/DEBUG ( 31): 
I/DEBUG ( 31): code around pc: 
I/DEBUG ( 31): a81144b8 1c264337 02364016 401c4337 1c3c0a26 
I/DEBUG ( 31): a81144c8 602c4334 57042403 dbea42a1 46c0bdf0 
I/DEBUG ( 31): a81144d8 56c32302 56412101 230318ca 320856c3 
I/DEBUG ( 31): a81144e8 008018d0 46c04770 47706800 23006802 
I/DEBUG ( 31): a81144f8 d1012a00 689b6883 47701c18 21016001 
I/DEBUG ( 31): 
I/DEBUG ( 31): code around lr: 
I/DEBUG ( 31): ad349d9c 9a059903 990947a0 29002400 ac0fd062 
I/DEBUG ( 31): ad349dac 20007b22 2a009003 6920d02a ece4f7d2 
I/DEBUG ( 31): ad349dbc 23b0682a 00981c01 1c285813 90034798 
I/DEBUG ( 31): ad349dcc d1012800 e7b14843 22de6828 58430091 
I/DEBUG ( 31): ad349ddc 1c282200 47989903 28009005 4d3ed103 
I/DEBUG ( 31): 
I/DEBUG ( 31): stack: 
I/DEBUG ( 31):  becab828 0000aa50 [heap] 
I/DEBUG ( 31):  becab82c 46024df8 /dev/ashmem/mspace/dalvik-heap/2 (deleted) 
I/DEBUG ( 31):  becab830 420eace8 /dev/ashmem/dalvik-LinearAlloc (deleted) 
I/DEBUG ( 31):  becab834 808343a3 /system/lib/libdvm.so 
I/DEBUG ( 31):  becab838 00000000 
I/DEBUG ( 31):  becab83c 8086dd88 /system/lib/libdvm.so 
I/DEBUG ( 31):  becab840 00000000 
I/DEBUG ( 31):  becab844 80886910 /system/lib/libdvm.so 
I/DEBUG ( 31):  becab848 8082dba5 /system/lib/libdvm.so 
I/DEBUG ( 31):  becab84c 46024e48 /dev/ashmem/mspace/dalvik-heap/2 (deleted) 
I/DEBUG ( 31):  becab850 00138eb0 [heap] 
I/DEBUG ( 31):  becab854 80834309 /system/lib/libdvm.so 
I/DEBUG ( 31):  becab858 0000aa50 [heap] 
I/DEBUG ( 31):  becab85c 00116400 [heap] 
I/DEBUG ( 31):  becab860 df002777 
I/DEBUG ( 31):  becab864 e3a070ad 
I/DEBUG ( 31): #01 becab868 00000000 
I/DEBUG ( 31):  becab86c c0000000 
I/DEBUG ( 31):  becab870 becab914 [stack] 
I/DEBUG ( 31):  becab874 00000000 
I/DEBUG ( 31):  becab878 ad36e0a8 /system/lib/libandroid_runtime.so 
I/DEBUG ( 31):  becab87c 420eace8 /dev/ashmem/dalvik-LinearAlloc (deleted) 
I/DEBUG ( 31):  becab880 ad374ce4 /system/lib/libandroid_runtime.so 
I/DEBUG ( 31):  becab884 00000001 
I/DEBUG ( 31):  becab888 00000001 
I/DEBUG ( 31):  becab88c 00000001 
I/DEBUG ( 31):  becab890 00000000 
I/DEBUG ( 31):  becab894 00121ab0 [heap] 
I/DEBUG ( 31):  becab898 46024dd8 /dev/ashmem/mspace/dalvik-heap/2 (deleted) 
I/DEBUG ( 31):  becab89c becab8c8 [stack] 
I/DEBUG ( 31):  becab8a0 00000000 
I/DEBUG ( 31):  becab8a4 ad36dc48 /system/lib/libandroid_runtime.so 
I/DEBUG ( 31):  becab8a8 00000002 
I/DEBUG ( 31):  becab8ac 00116400 [heap] 
I/DEBUG ( 31):  becab8b0 00000101 
I/DEBUG ( 31):  becab8b4 00000000 
I/DEBUG ( 31):  becab8b8 00000000 
I/DEBUG ( 31):  becab8bc 00000000 
I/DEBUG ( 31):  becab8c0 46024df8 /dev/ashmem/mspace/dalvik-heap/2 (deleted) 
I/DEBUG ( 31):  becab8c4 00116400 [heap] 
I/DEBUG ( 31):  becab8c8 ad36dd10 /system/lib/libandroid_runtime.so 
I/DEBUG ( 31):  becab8cc 00000001 
I/DEBUG ( 31):  becab8d0 0000aa50 [heap] 
I/DEBUG ( 31):  becab8d4 80886901 /system/lib/libdvm.so 
I/DEBUG ( 31):  becab8d8 ad36e0a8 /system/lib/libandroid_runtime.so 
I/DEBUG ( 31):  becab8dc 00000000 
I/DEBUG ( 31):  becab8e0 0000aa50 [heap] 
I/DEBUG ( 31):  becab8e4 46024dd8 /dev/ashmem/mspace/dalvik-heap/2 (deleted) 
I/DEBUG ( 31):  becab8e8 4208b820 
I/DEBUG ( 31):  becab8ec ad349f15 /system/lib/libandroid_runtime.so 
D/Zygote ( 33): Process 370 terminated by signal (11) 
I/ActivityManager( 71): Process com.example.actionbartest.app (pid 370) has died. 



========================== ================================从硬件和应用程序在Mac上编译

输出:

I/DEBUG (2267): pid: 2314, tid: 2314 >>> com.example.macabtest.app <<< 
I/DEBUG (2267): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000001 
I/DEBUG (2267): r0 00000000 r1 00000007 r2 fffffe84 r3 00000070 
I/DEBUG (2267): r4 0000abd8 r5 40547590 r6 ad376684 r7 00000001 
I/DEBUG (2267): r8 00219ef0 r9 00222178 10 00000001 fp 442ef280 
I/DEBUG (2267): ip ad3774c8 sp beb9f3c8 lr ad3515d5 pc a8115448 cpsr 20000030 
I/DEBUG (2267): d0 0000000000000000 d1 0000000000000000 
I/DEBUG (2267): d2 0000000000000000 d3 0000000000000000 
I/DEBUG (2267): d4 0000000000000000 d5 0000000000000000 
I/DEBUG (2267): d6 0000000000000000 d7 0000000000000000 
I/DEBUG (2267): d8 0000000000000000 d9 0000000000000000 
I/DEBUG (2267): d10 0000000000000000 d11 0000000000000000 
I/DEBUG (2267): d12 0000000000000000 d13 0000000000000000 
I/DEBUG (2267): d14 0000000000000000 d15 0000000000000000 
I/DEBUG (2267): d16 0000000000000000 d17 3ff0000000000000 
I/DEBUG (2267): d18 42eccefa43de3400 d19 3fbc71c71c71c71c 
I/DEBUG (2267): d20 4008000000000000 d21 3fd99a27ad32ddf5 
I/DEBUG (2267): d22 3fd24998d6307188 d23 3fcc7288e957b53b 
I/DEBUG (2267): d24 3fc74721cad6b0ed d25 3fc39a09d078c69f 
I/DEBUG (2267): d26 0000000000000000 d27 0000000000000000 
I/DEBUG (2267): d28 0000000000000000 d29 0000000000000000 
I/DEBUG (2267): d30 0000000000000000 d31 0000000000000000 
I/DEBUG (2267): scr 60000012 
I/DEBUG (2267): 
I/DEBUG (2267):   #00 pc 00015448 /system/lib/libutils.so 
I/DEBUG (2267):   #01 lr ad3515d5 /system/lib/libandroid_runtime.so 
I/DEBUG (2267): 
I/DEBUG (2267): code around pc: 
I/DEBUG (2267): a8115428 f4026412 ea44457f ea442405 f841221c 
I/DEBUG (2267): a8115438 33012023 1003f990 dbea428b bf00bd30 
I/DEBUG (2267): a8115448 2001f990 3002f990 f99018d1 f1113003 
I/DEBUG (2267): a8115458 18d00208 47700080 47706800 b10b6803 
I/DEBUG (2267): a8115468 e0012000 68886881 bf004770 33fff04f 
I/DEBUG (2267): 
I/DEBUG (2267): code around lr: 
I/DEBUG (2267): ad3515b4 f8d24629 465a71a0 46204603 f1ba47b8 
I/DEBUG (2267): ad3515c4 d0590f00 7030f89d 980db32f eb28f7d0 
I/DEBUG (2267): ad3515d4 68204601 22c0f8d0 47904620 b9104607 
I/DEBUG (2267): ad3515e4 4478484c 6821e7b4 22004620 3378f8d1 
I/DEBUG (2267): ad3515f4 47984639 b9104682 44784847 980de7a8 
I/DEBUG (2267): 
I/DEBUG (2267): stack: 
I/DEBUG (2267):  beb9f388 405475e0 
I/DEBUG (2267):  beb9f38c 00000000 
I/DEBUG (2267):  beb9f390 405475e0 
I/DEBUG (2267):  beb9f394 0000ce38 
I/DEBUG (2267):  beb9f398 405475e0 
I/DEBUG (2267):  beb9f39c 8004c053 /system/lib/libdvm.so 
I/DEBUG (2267):  beb9f3a0 40547590 
I/DEBUG (2267):  beb9f3a4 442ef280 
I/DEBUG (2267):  beb9f3a8 405475e0 
I/DEBUG (2267):  beb9f3ac 8004bf39 /system/lib/libdvm.so 
I/DEBUG (2267):  beb9f3b0 0000abd8 
I/DEBUG (2267):  beb9f3b4 40547590 
I/DEBUG (2267):  beb9f3b8 ad376684 
I/DEBUG (2267):  beb9f3bc 8004bf05 /system/lib/libdvm.so 
I/DEBUG (2267):  beb9f3c0 df002777 
I/DEBUG (2267):  beb9f3c4 e3a070ad 
I/DEBUG (2267): #00 beb9f3c8 00000001 
I/DEBUG (2267):  beb9f3cc 00000000 
I/DEBUG (2267):  beb9f3d0 beb9f410 
I/DEBUG (2267):  beb9f3d4 00000000 
I/DEBUG (2267):  beb9f3d8 00000000 
I/DEBUG (2267):  beb9f3dc 00000000 
I/DEBUG (2267):  beb9f3e0 000f0d88 
I/DEBUG (2267):  beb9f3e4 40547570 
I/DEBUG (2267):  beb9f3e8 beb9f41c 
I/DEBUG (2267):  beb9f3ec ad3760c0 
I/DEBUG (2267):  beb9f3f0 00000002 
I/DEBUG (2267):  beb9f3f4 00219ef0 
I/DEBUG (2267):  beb9f3f8 00221e01 
I/DEBUG (2267):  beb9f3fc 00000000 
I/DEBUG (2267):  beb9f400 00000000 
I/DEBUG (2267):  beb9f404 00000000 
I/DEBUG (2267):  beb9f408 40547590 
I/DEBUG (2267):  beb9f40c 00219ef0 
D/Zygote ( 54): Process 2314 terminated by signal (11) 
I/ActivityManager( 127): Process com.example.macabtest.app (pid 2314) has died. 
+2

尝试增加'android.aaptOptions.useAaptPngCruncher = TRUE' 你'build.gradle'文件,因为是关系到PNG文件Android插件在摇篮中的错误,你可能会绊倒。 – CommonsWare

回答

3

更改gradle设置可解决问题。

不工作:

classpath 'com.android.tools.build:gradle:0.9.+' 

工作:

classpath 'com.android.tools.build:gradle:0.9.0' 

参见https://code.google.com/p/android/issues/detail?id=67376

编辑:
CommonsWare的解决方案是整洁的,因为它与所有gradle这个版本的工作原理:
添加android.aaptOptions.useAaptPngCruncher = truebuild.gradle文件,