解决有关VIVO的2018-04-01安全补丁导致的APP闪退问题

事件:最近几天收到几个反馈说,原本能用的APP现在启动直接闪退.

时间:2018年5月8日 10:45:22

[√]问题原因猜测4:

虽然终于知道哪里出问题了,但是该代码是必须要保留的,否则本地数据库就完全无法使用了.那么该如何解决不能读取的问题? 还是通过打点,排除法,一步步的发现可疑代码.

Log.e("--------------", "" + R.string.sql_db_version);
Log.e("--------------", "" + R.string.sql_CreateDB);
Log.e("--------------", "" + R.string.sql_UpgradeDB);
Log.e("--------------", getString(R.string.sql_db_version));
Log.e("--------------", getString(R.string.sql_CreateDB));
Log.e("--------------", getString(R.string.sql_UpgradeDB));

最终的确发现日志的输出有可疑的地方:仅在getString(R.string.sql_CreateDB)时出现曾经的问题了.

05-08 17:28:12.125 E/--------------(24311): 2131362643
05-08 17:28:12.125 E/--------------(24311): 2131362571
05-08 17:28:12.125 E/--------------(24311): 2131362576
05-08 17:28:12.125 E/--------------(24311): 74
05-08 17:28:12.125 W/ResourceType(24311): Bad string block: string #14 is not null-terminated

在看了三个字符串实际内容时,发现 sql_CreateDB 的字符串刚好是长度最长的! 那么理论上无论在哪里调用 getString(R.string.sql_CreateDB) 都将会触发崩溃.

实际测试后,将该代码放入Activity里再调用,的确是崩溃了.而且Java层应用的UncaughtExceptionHandler也捕获不了此类底层错误.

经过手工边界值测试,发现当XML里的string里存储的字符长度最大值为:

  • [√正常]<= 10922 个中文字符
  • [×崩溃]>= 10923 个中文字符
  • [√正常]<= 10922 个中文字符 + 1个英文字符A
  • [×奔溃]>= 10922 个中文字符 + 2个英文字符A
  • [×奔溃]>= 10922*3=32766 个英文字符A + 2个英文字符A
  • [×奔溃]>= 34000 个英文字符A
  • [√正常]<= 10922*2=21844 个英文字符A + 1个英文字符A
  • [√正常]>= 10922*3=32766 个英文字符A + 1个英文字符A

short 占用内存空间2个字节,也就是16个二进制位。 表示负数时,最高位为符号位(负数的符号位为1),最高位为符号位(正数的符号位为0),最大的正数为0111 1111 1111 1111 即2^15 - 1 = 32767

看到这个数字于是一个大胆的猜测浮现脑中:

  • VIVO为了解决Android的某个类似堆栈溢出的安全问题,在2018-04-01打了一个对应的安全补丁
  • 影响的代码因为是在 libandroidfw.so 文件里
  • 影响的范围应该就是 nativeGetString 时的允许的最大字符串长度

个人猜测:原本未修复前,这个最大字符串长度应该是没有设置的,所以才出现类似堆栈溢出的漏洞.

  • 最大字符串长度类型被有意或者无意改为了 short 类型?? 为什么呢?? 为了节约内存?? 节约内存也不应该在"安全补丁"里处理吧?
  • 现在修复之后,将其设置成了某个值,字符串长度大于这个值时就返回null
  • 于是APP从最底层就崩溃了.

参考资料

Maximum length of string allowed as a value (8192 characters).

最终解决方案

既然是字符串长度超标导致的,那么可以

  1. 将其拆分成多个不同的 XML String 里.
  2. 将单张表的建表SQL放入 XML 的 String 数组里
  3. (最终采用的方案)将其放入 assets 目录里单独读取
  • TODO:会减少内存占用否??
  • TODO:会增加读取时间否??
  • 会减少 resources.arsc 大小
    • resources.arsc: 原压缩后大小:505.15 现压缩后大小:398.73 减少大小: 106.42KB
  • 总压缩比有所提升(总大小减少)
    • assets: 原压缩后大小:24.88 现压缩后大小:38.58 增加大小: 13.7KB
    • 总减少大小: 106.42KB - 13.7KB = 92.72KB
    • 总的压缩比提升了,猜测原因是打包后的APK文件里 resources.arsc 文件默认是不压缩的,而 assets文件夹默认则是使用Deflate压缩算法压缩了.所以总的来说减少APK文件大小了.

参考资料:

[√]问题原因猜测3:

主要通过分析LogCat里的整个崩溃堆栈backtrace,从几个Android函数猜测可能在Application里初始化SQLiteOpenHelper导致的问题.

: backtrace:
: #00 pc 00018480 /system/lib/libandroidfw.so (_ZNK7android13ResStringPool9string8AtEjPj+147)
: #01 pc 0009d6f7 /system/lib/libandroid_runtime.so
: #02 pc 019d6287 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.StringBlock.nativeGetString+98)
: #03 pc 019d6609 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.StringBlock.get+324)
: #04 pc 019bca3b /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.AssetManager.getResourceValue+126)
: #05 pc 019bc75b /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.AssetManager.getResourceText+70)
: #06 pc 019d1adf /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.ResourcesImpl.getText+90)
: #07 pc 019cc583 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.Resources.getText+46)
: #08 pc 019cc34b /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.Resources.getString+38)
: #09 pc 01735ff5 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.Context.getString+56)
:
: ……
:
: #20 pc 000ae413 /system/lib/libart.so (art_quick_to_interpreter_bridge+34)
: #21 pc 0194fc85 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked+760)
: #22 pc 0195029d /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.database.sqlite.SQLiteOpenHelper.getWritableDatabase+56)
: #23 pc 000a99c1 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
:
: ……
:
: #55 pc 017b6e0b /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.app.ActivityThread.handleCreateService+662)
: #56 pc 017b01ed /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.app.ActivityThread.-wrap5+48)
: #57 pc 017aceab /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.app.ActivityThread$H.handleMessage+4126)
: #58 pc 017aa74f /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.os.Handler.dispatchMessage+114)
: #59 pc 01d7ee87 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.os.Looper.loop+714)
: #60 pc 017bbcab /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.app.ActivityThread.main+438)

参考资料:

尝试解决 [√成功]

  1. 将 继承自Application的子类的 onCreate 里的 所有代码都移除
  2. 然后打包到 远程真机 VIVO X21A 终于没有 闪退了!

继续缩小定位到真正出错的代码行
原来是因为继承自Application的子类的 onCreate 里的有使用一行SQLite初始化代码需要从 R资源文件里读取建表SQL导致的问题!

class VSfaApplication extends BaseApplication
{
@Override
public void onCreate()
{
super.onCreate();
//注释掉就不会崩溃了.
//DBHelper.init(this, "VSFA", Utils.obj2int(this.getString(R.string.sql_db_version), 0), R.string.sql_CreateDB, R.string.sql_UpgradeDB);
}
}

[×]问题原因猜测2:

主要通过分析LogCat里的崩溃堆栈backtrace,猜测可能是某些特殊字符串导致的问题?

ResourceType: Bad string block: string #14 is not null-terminated

: backtrace:
: #00 pc 00018480 /system/lib/libandroidfw.so (_ZNK7android13ResStringPool9string8AtEjPj+147)
: #01 pc 0009d6f7 /system/lib/libandroid_runtime.so
: #02 pc 019d6287 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.StringBlock.nativeGetString+98)
: #03 pc 019d6609 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.StringBlock.get+324)
: #04 pc 019bca3b /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.AssetManager.getResourceValue+126)
: #05 pc 019bc75b /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.AssetManager.getResourceText+70)
: #06 pc 019d1adf /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.ResourcesImpl.getText+90)
: #07 pc 019cc583 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.Resources.getText+46)
: #08 pc 019cc34b /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.Resources.getString+38)
: #09 pc 01735ff5 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.Context.getString+56)

尝试解决 [×失败]

  1. 将 AndroidManifest.xml 删除所有只保留一个非常单纯的Activity作为 android.intent.category.LAUNCHER
  2. 在测试机测试时保证能正常启动到空白界面.
  3. 然后打包到 远程真机 VIVO X21A 还是 闪退了!

[×]问题原因猜测1:

主要通过分析LogCat猜测可能是 native 层出现未知异常

ResourceType: Bad string block: string #14 is not null-terminated
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xe858eaf7
ActivityManager: net.azyk.sfa crash because Native crash

貌似还是跟权限相关的异常:

SEGV_ACCERR means you tried to access an address that you don’t have permission to access
Android -- SEGV_MAPERR,SEGV_ACCERR - CSDN博客

项目使用的.SO类库有:

1. libZBarDecoder.so
条码,二维码扫描组件
2. liblocSDK6a.so
百度定位组件
3. libbdpush_V2_7.so
百度推送组件

因为系统尚未渲染任何界面即闪退,那么很大可能是在Application里的初始化代码触发了.SO类库的初始化

尝试解决 [×失败]

  1. 重新打包APK将所有JNI类库都删除掉.

测试结果:

  1. 远程真机 VIVO X21A 还是闪退
  2. 真机ZUK Z2 7.1.2 正常打开
  3. 天天模拟器4.4.4版本 正常打开

根据线索尝试重现问题 [√成功]

  1. 使用Testin远程真机服务 选择VIVO一样的8.1.0系统,安装同样的APP版本,没有出现闪退的情况. (不过 Android 安全补丁程序级别 貌似不是 2018-04-01 )

  1. 将远程真机检测系统升级到最新版本后, Android 安全补丁程序级别 变为 2018-04-01 后,再次尝试安装APP,完美重现闪退场景!

线索:

  1. 手机品牌都是VIVO

  2. Android系统版本有7.1.2和8.1.0

  3. Android 安全补丁程序级别 貌似都是 2018-04-01 (从几个人的反馈截图可见,Android版本不一样的情况下,补丁日期是相同的)

  4. 最近貌似都有过升级手机系统,或者换新手机的情况(最近新款VIVO手机内置最新版本8.1.0系统)。

  5. 点击APP图标直接一闪而过,没有看见任何界面被渲染出来(从微信小视频里看到的)

  6. 通过远程控制某位反馈人员的电脑间接控制其手机拿到了LogCat日志信息如下

     05-08 10:01:01.656  3112  3112 D Launcher:  click shortcut info is ShortcutInfo(title=海汇通intent=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=net.azyk.sfa/net.azyk.framework.SystemLauncherFixerActivity bnds=[289,67][535,315] }id=77 type=30 container=-100 screen=2 cellX=1 cellY=0 spanX=1 spanY=1 isGesture=false dropPos=null)
    05-08 10:01:01.660 1501 2392 E ActivityManager: Sending non-protected broadcast com.vivo.abe.third.lifecontrol from system uid 1000 pkg null
    05-08 10:01:01.660 1501 2392 E ActivityManager: java.lang.Throwable
    05-08 10:01:01.660 1501 2392 E ActivityManager: at com.android.server.am.ActivityManagerService.checkBroadcastFromSystem(ActivityManagerService.java:20249)
    05-08 10:01:01.660 1501 2392 E ActivityManager: at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:20755)
    05-08 10:01:01.660 1501 2392 E ActivityManager: at com.android.server.am.ActivityStarter.startActivityLocked(ActivityStarter.java:434)
    05-08 10:01:01.660 1501 2392 E ActivityManager: at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:1239)
    05-08 10:01:01.660 1501 2392 E ActivityManager: at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:5508)
    05-08 10:01:01.660 1501 2392 E ActivityManager: at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:5442)
    05-08 10:01:01.660 1501 2392 E ActivityManager: at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:168)
    05-08 10:01:01.660 1501 2392 E ActivityManager: at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3321)
    05-08 10:01:01.660 1501 2392 E ActivityManager: at android.os.Binder.execTransact(Binder.java:565)
    05-08 10:01:01.661 1501 2392 E ActivityManager: Sending non-protected broadcast com.vivo.abe.third.lifecontrol from system uid 1000 pkg null
    05-08 10:01:01.661 1501 2392 E ActivityManager: java.lang.Throwable
    05-08 10:01:01.661 1501 2392 E ActivityManager: at com.android.server.am.ActivityManagerService.checkBroadcastFromSystem(ActivityManagerService.java:20249)
    05-08 10:01:01.661 1501 2392 E ActivityManager: at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:20846)
    05-08 10:01:01.661 1501 2392 E ActivityManager: at com.android.server.am.ActivityStarter.startActivityLocked(ActivityStarter.java:434)
    05-08 10:01:01.661 1501 2392 E ActivityManager: at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:1239)
    05-08 10:01:01.661 1501 2392 E ActivityManager: at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:5508)
    05-08 10:01:01.661 1501 2392 E ActivityManager: at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:5442)
    05-08 10:01:01.661 1501 2392 E ActivityManager: at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:168)
    05-08 10:01:01.661 1501 2392 E ActivityManager: at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3321)
    05-08 10:01:01.661 1501 2392 E ActivityManager: at android.os.Binder.execTransact(Binder.java:565)
    05-08 10:01:01.662 1501 2392 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=net.azyk.sfa/net.azyk.framework.SystemLauncherFixerActivity bnds=[289,67][535,315]} from uid 10028 on display 0
    05-08 10:01:01.670 1501 2392 D ActivityTrigger: ActivityTrigger activityPauseTrigger
    05-08 10:01:01.673 3112 3112 D Launcher: startActivitySafely success ? true
    05-08 10:01:01.674 3112 3112 D Launcher: onWindowFocusChanged , hasFocus = false
    05-08 10:01:01.675 3112 3112 D Launcher: onPause -- mState = WORKSPACE
    05-08 10:01:01.687 1501 3144 I ActivityManager: Start proc 17739:net.azyk.sfa/u0a91 for activity net.azyk.sfa/net.azyk.framework.SystemLauncherFixerActivity
    05-08 10:01:01.704 1501 1515 D BBKTouchScreenService: pakage name is net.azyk.sfawith :10091
    05-08 10:01:01.705 1501 1515 D BBKTouchScreenService: called and appName is [B@cb58e39
    05-08 10:01:01.705 1501 1515 D touchscreenjni: chenpeng JNI called
    05-08 10:01:01.705 1501 1515 E touchscreen: Open /sys/touchscreen/app_name failed
    05-08 10:01:01.705 1501 1878 D UserModifyRecorder: pakage name is net.azyk.sfa with :10091
    05-08 10:01:01.705 1501 1515 D VivoAppMonitor: onForegroundActivitiesChanged: pid=17739, uid=10091, foregroundActivities=true
    05-08 10:01:01.706 1501 1515 D VivoAppMonitor: mForgroundAppName=net.azyk.sfa, mLastForgroundAppName = com.bbk.launcher2
    05-08 10:01:01.748 17739 17739 I FtBuild : getRomVersion mRomVer=3.5
    05-08 10:01:01.770 1501 2385 I ActivityManager: START u0 {flg=0x10000000 cmp=net.azyk.sfa/net.azyk.vsfa.v010v.login.LaunchScreenActivity} from uid 10091 on display 0
    05-08 10:01:01.774 1501 2385 D ActivityTrigger: ActivityTrigger activityPauseTrigger
    05-08 10:01:01.816 17739 17739 W ResourceType: Bad string block: string #14 is not null-terminated
    05-08 10:01:01.817 474 474 W : debuggerd: handling request: pid=17739 uid=10091 gid=10091 tid=17739
    05-08 10:01:01.884 17757 17757 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    05-08 10:01:01.884 17757 17757 F DEBUG : Build fingerprint: 'vivo/PD1616/PD1616:7.1.2/N2G47H/compil04282005:user/release-keys'
    05-08 10:01:01.884 17757 17757 F DEBUG : Revision: '0'
    05-08 10:01:01.884 17757 17757 F DEBUG : ABI: 'arm'
    05-08 10:01:01.884 17757 17757 F DEBUG : pid: 17739, tid: 17739, name: net.azyk.sfa >>> net.azyk.sfa <<<
    05-08 10:01:01.884 17757 17757 F DEBUG : signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xe858eaf7
    05-08 10:01:01.884 17757 17757 F DEBUG : r0 00000000 r1 00000000 r2 abf2adc2 r3 ec90685d
    05-08 10:01:01.884 17757 17757 F DEBUG : r4 e858d0f6 r5 00001b27 r6 e858eaf7 r7 12c5a4e0
    05-08 10:01:01.884 17757 17757 F DEBUG : r8 12c812b0 r9 e9b05e00 sl 7079bfac fp 12c5a4e0
    05-08 10:01:01.884 17757 17757 F DEBUG : ip fffffffc sp ffb546e8 lr ec98d47f pc ec98d480 cpsr 600b0030
    05-08 10:01:02.124 564 564 I SurfaceFlinger: FPS: 31
    05-08 10:01:02.227 17757 17757 F DEBUG :
    05-08 10:01:02.227 17757 17757 F DEBUG : backtrace:
    05-08 10:01:02.227 17757 17757 F DEBUG : #00 pc 00018480 /system/lib/libandroidfw.so (_ZNK7android13ResStringPool9string8AtEjPj+147)
    05-08 10:01:02.227 17757 17757 F DEBUG : #01 pc 0009d6f7 /system/lib/libandroid_runtime.so
    05-08 10:01:02.227 17757 17757 F DEBUG : #02 pc 019d6287 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.StringBlock.nativeGetString+98)
    05-08 10:01:02.227 17757 17757 F DEBUG : #03 pc 019d6609 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.StringBlock.get+324)
    05-08 10:01:02.227 17757 17757 F DEBUG : #04 pc 019bca3b /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.AssetManager.getResourceValue+126)
    05-08 10:01:02.227 17757 17757 F DEBUG : #05 pc 019bc75b /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.AssetManager.getResourceText+70)
    05-08 10:01:02.227 17757 17757 F DEBUG : #06 pc 019d1adf /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.ResourcesImpl.getText+90)
    05-08 10:01:02.227 17757 17757 F DEBUG : #07 pc 019cc583 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.Resources.getText+46)
    05-08 10:01:02.227 17757 17757 F DEBUG : #08 pc 019cc34b /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.res.Resources.getString+38)
    05-08 10:01:02.227 17757 17757 F DEBUG : #09 pc 01735ff5 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.content.Context.getString+56)
    05-08 10:01:02.227 17757 17757 F DEBUG : #10 pc 000a99c1 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
    05-08 10:01:02.227 17757 17757 F DEBUG : #11 pc 00405681 /system/lib/libart.so (art_quick_invoke_stub+232)
    05-08 10:01:02.227 17757 17757 F DEBUG : #12 pc 000b0c55 /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+136)
    05-08 10:01:02.227 17757 17757 F DEBUG : #13 pc 001ed215 /system/lib/libart.so (_ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+200)
    05-08 10:01:02.227 17757 17757 F DEBUG : #14 pc 001e77c5 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+492)
    05-08 10:01:02.227 17757 17757 F DEBUG : #15 pc 003ffafb /system/lib/libart.so (MterpInvokeVirtualQuick+322)
    05-08 10:01:02.227 17757 17757 F DEBUG : #16 pc 000a0594 /system/lib/libart.so (ExecuteMterpImpl+29972)
    05-08 10:01:02.227 17757 17757 F DEBUG : #17 pc 001caaef /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
    05-08 10:01:02.227 17757 17757 F DEBUG : #18 pc 001cf5c1 /system/lib/libart.so (_ZN3art11interpreter30EnterInterpreterFromEntryPointEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameE+92)
    05-08 10:01:02.227 17757 17757 F DEBUG : #19 pc 003f4b7f /system/lib/libart.so (artQuickToInterpreterBridge+706)
    05-08 10:01:02.227 17757 17757 F DEBUG : #20 pc 000ae413 /system/lib/libart.so (art_quick_to_interpreter_bridge+34)
    05-08 10:01:02.227 17757 17757 F DEBUG : #21 pc 0194fc85 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked+760)
    05-08 10:01:02.227 17757 17757 F DEBUG : #22 pc 0195029d /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.database.sqlite.SQLiteOpenHelper.getWritableDatabase+56)
    05-08 10:01:02.227 17757 17757 F DEBUG : #23 pc 000a99c1 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
    05-08 10:01:02.227 17757 17757 F DEBUG : #24 pc 00405681 /system/lib/libart.so (art_quick_invoke_stub+232)
    05-08 10:01:02.228 17757 17757 F DEBUG : #25 pc 000b0c55 /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+136)
    05-08 10:01:02.228 17757 17757 F DEBUG : #26 pc 001ed215 /system/lib/libart.so (_ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+200)
    05-08 10:01:02.228 17757 17757 F DEBUG : #27 pc 001e77c5 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+492)
    05-08 10:01:02.228 17757 17757 F DEBUG : #28 pc 003ffafb /system/lib/libart.so (MterpInvokeVirtualQuick+322)
    05-08 10:01:02.228 17757 17757 F DEBUG : #29 pc 000a0594 /system/lib/libart.so (ExecuteMterpImpl+29972)
    05-08 10:01:02.228 17757 17757 F DEBUG : #30 pc 001caaef /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
    05-08 10:01:02.228 17757 17757 F DEBUG : #31 pc 001cf657 /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
    05-08 10:01:02.228 17757 17757 F DEBUG : #32 pc 001e77ab /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+466)
    05-08 10:01:02.228 17757 17757 F DEBUG : #33 pc 003fe299 /system/lib/libart.so (MterpInvokeStatic+236)
    05-08 10:01:02.228 17757 17757 F DEBUG : #34 pc 0009c994 /system/lib/libart.so (ExecuteMterpImpl+14612)
    05-08 10:01:02.228 17757 17757 F DEBUG : #35 pc 001caaef /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
    05-08 10:01:02.228 17757 17757 F DEBUG : #36 pc 001cf657 /system/lib/libart.so (_ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+114)
    05-08 10:01:02.228 17757 17757 F DEBUG : #37 pc 001e77ab /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+466)
    05-08 10:01:02.228 17757 17757 F DEBUG : #38 pc 003fe299 /system/lib/libart.so (MterpInvokeStatic+236)
    05-08 10:01:02.228 17757 17757 F DEBUG : #39 pc 0009c994 /system/lib/libart.so (ExecuteMterpImpl+14612)
    05-08 10:01:02.228 17757 17757 F DEBUG : #40 pc 001caaef /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
    05-08 10:01:02.228 17757 17757 F DEBUG : #41 pc 001cf5c1 /system/lib/libart.so (_ZN3art11interpreter30EnterInterpreterFromEntryPointEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameE+92)
    05-08 10:01:02.228 17757 17757 F DEBUG : #42 pc 003f4b7f /system/lib/libart.so (artQuickToInterpreterBridge+706)
    05-08 10:01:02.228 17757 17757 F DEBUG : #43 pc 000ae413 /system/lib/libart.so (art_quick_to_interpreter_bridge+34)
    05-08 10:01:02.228 17757 17757 F DEBUG : #44 pc 000a99c1 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
    05-08 10:01:02.228 17757 17757 F DEBUG : #45 pc 00405789 /system/lib/libart.so (art_quick_invoke_static_stub+228)
    05-08 10:01:02.228 17757 17757 F DEBUG : #46 pc 000b0c7f /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
    05-08 10:01:02.228 17757 17757 F DEBUG : #47 pc 001ed215 /system/lib/libart.so (_ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameEPNS_6JValueE+200)
    05-08 10:01:02.228 17757 17757 F DEBUG : #48 pc 001e77c5 /system/lib/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+492)
    05-08 10:01:02.228 17757 17757 F DEBUG : #49 pc 003fe299 /system/lib/libart.so (MterpInvokeStatic+236)
    05-08 10:01:02.228 17757 17757 F DEBUG : #50 pc 0009c994 /system/lib/libart.so (ExecuteMterpImpl+14612)
    05-08 10:01:02.228 17757 17757 F DEBUG : #51 pc 001caaef /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadEPKNS_7DexFile8CodeItemERNS_11ShadowFrameENS_6JValueEb+290)
    05-08 10:01:02.228 17757 17757 F DEBUG : #52 pc 001cf5c1 /system/lib/libart.so (_ZN3art11interpreter30EnterInterpreterFromEntryPointEPNS_6ThreadEPKNS_7DexFile8CodeItemEPNS_11ShadowFrameE+92)
    05-08 10:01:02.228 17757 17757 F DEBUG : #53 pc 003f4b7f /system/lib/libart.so (artQuickToInterpreterBridge+706)
    05-08 10:01:02.228 17757 17757 F DEBUG : #54 pc 000ae413 /system/lib/libart.so (art_quick_to_interpreter_bridge+34)
    05-08 10:01:02.228 17757 17757 F DEBUG : #55 pc 017b6e0b /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.app.ActivityThread.handleCreateService+662)
    05-08 10:01:02.228 17757 17757 F DEBUG : #56 pc 017b01ed /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.app.ActivityThread.-wrap5+48)
    05-08 10:01:02.228 17757 17757 F DEBUG : #57 pc 017aceab /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.app.ActivityThread$H.handleMessage+4126)
    05-08 10:01:02.228 17757 17757 F DEBUG : #58 pc 017aa74f /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.os.Handler.dispatchMessage+114)
    05-08 10:01:02.228 17757 17757 F DEBUG : #59 pc 01d7ee87 /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.os.Looper.loop+714)
    05-08 10:01:02.228 17757 17757 F DEBUG : #60 pc 017bbcab /system/framework/arm/boot-framework.oat (offset 0x1734000) (android.app.ActivityThread.main+438)
    05-08 10:01:02.228 17757 17757 F DEBUG : #61 pc 000a99c1 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
    05-08 10:01:02.228 17757 17757 F DEBUG : #62 pc 00405789 /system/lib/libart.so (art_quick_invoke_static_stub+228)
    05-08 10:01:02.228 17757 17757 F DEBUG : #63 pc 000b0c7f /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
    05-08 10:01:02.275 1501 1514 W ActivityManager: Activity pause timeout for ActivityRecord{5e14494 u0 net.azyk.sfa/net.azyk.framework.SystemLauncherFixerActivity t35 f}
    05-08 10:01:02.279 2124 2138 V pem : noteActivityV5 uid = 10091, cool = 1, Name = net.azyk.vsfa.v010v.login.LaunchScreenActivity
    05-08 10:01:02.555 1501 17762 I ActivityManager: handleApplicationCrash callnet.azyk.sfa
    05-08 10:01:02.556 1501 17762 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.startService:1363 com.android.server.am.ActivityManagerService.handleApplicationCrashInner:15415 com.android.server.am.NativeCrashListener$NativeCrashReporter.run:86 <bottom of call stack> <bottom of call stack>
    05-08 10:01:02.558 2124 2137 D SLService: ppCra : net.azyk.sfa pid : 17739
    05-08 10:01:02.558 3042 3042 I UDC_LogUploadService: onCreate
    05-08 10:01:02.562 474 474 W : debuggerd: resuming target 17739
    05-08 10:01:02.563 1501 17762 W ActivityManager: Force finishing activity net.azyk.sfa/net.azyk.vsfa.v010v.login.LaunchScreenActivity
    05-08 10:01:02.566 1501 17762 D ActivityTrigger: ActivityTrigger activityPauseTrigger
    05-08 10:01:02.566 1501 17762 E JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 112)
    05-08 10:01:02.566 2124 3459 V pem : noteAppPaused uid = 10091
    05-08 10:01:02.567 1501 17762 W ActivityManager: Exception thrown during pause
    05-08 10:01:02.567 1501 17762 W ActivityManager: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died
    05-08 10:01:02.567 1501 17762 W ActivityManager: at android.os.BinderProxy.transactNative(Native Method)
    05-08 10:01:02.567 1501 17762 W ActivityManager: at android.os.BinderProxy.transact(Binder.java:615)
    05-08 10:01:02.567 1501 17762 W ActivityManager: at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:804)
    05-08 10:01:02.567 1501 17762 W ActivityManager: at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:1204)
    05-08 10:01:02.567 1501 17762 W ActivityManager: at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3866)
    05-08 10:01:02.567 1501 17762 W ActivityManager: at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:3689)
    05-08 10:01:02.567 1501 17762 W ActivityManager: at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:2077)
    05-08 10:01:02.567 1501 17762 W ActivityManager: at com.android.server.am.AppErrors.handleAppCrashLocked(AppErrors.java:687)
    05-08 10:01:02.567 1501 17762 W ActivityManager: at com.android.server.am.AppErrors.makeAppCrashingLocked(AppErrors.java:538)
    05-08 10:01:02.567 1501 17762 W ActivityManager: at com.android.server.am.AppErrors.crashApplicationInner(AppErrors.java:373)
    05-08 10:01:02.567 1501 17762 W ActivityManager: at com.android.server.am.AppErrors.crashApplication(AppErrors.java:325)
    05-08 10:01:02.567 1501 17762 W ActivityManager: at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:15420)
    05-08 10:01:02.567 1501 17762 W ActivityManager: at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)
    05-08 10:01:02.567 734 734 I Zygote : Process 17739 exited due to signal (11)
    05-08 10:01:02.570 1501 17762 W ActivityManager: Failed setting process group of 17739 to 1
    05-08 10:01:02.570 1501 17762 W System.err: java.lang.IllegalArgumentException: Given thread 17739 does not exist
    05-08 10:01:02.571 1501 17762 W System.err: at android.os.Process.setThreadPriority(Native Method)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.ActivityManagerService.applyOomAdjLocked(ActivityManagerService.java:23039)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.ActivityManagerService.updateOomAdjLocked(ActivityManagerService.java:23583)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.ActivityStack.resumeTopActivityInnerLocked(ActivityStack.java:2721)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.ActivityStack.resumeTopActivityUncheckedLocked(ActivityStack.java:2311)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.ActivityStackSupervisor.resumeFocusedStackTopActivityLocked(ActivityStackSupervisor.java:2050)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.ActivityStackSupervisor.resumeFocusedStackTopActivityLocked(ActivityStackSupervisor.java:2004)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:1259)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3866)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:3689)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:2077)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.AppErrors.handleAppCrashLocked(AppErrors.java:687)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.AppErrors.makeAppCrashingLocked(AppErrors.java:538)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.AppErrors.crashApplicationInner(AppErrors.java:373)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.AppErrors.crashApplication(AppErrors.java:325)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:15420)
    05-08 10:01:02.571 1501 17762 W System.err: at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)
    05-08 10:01:02.579 1501 17762 W ActivityManager: net.azyk.sfa crash because Native crash

反馈信息汇总

反馈的系统截图1

反馈的系统截图2

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 

180508 - 解决有关VIVO的2018-04-01安全补丁导致的APP闪退问题的更多相关文章

  1. EZ 2018 04 01 ZJOI2018模拟赛04.01

    现在开始填以前的坑 这次老叶强制我们打一下这次省选题,然后我已经做好了掉Rating到死的准备 然后考完--莫名涨了 Orz 题目链接 由于很多东西我都不会,所以详细请看:dalao的题解 T1 我T ...

  2. 2018/04/01 每日一个Linux命令 之 sleep

    今天看到一个很有意思的指令. sleep [睡觉/休眠] 的意思. 可以用来将目前动作延迟一段时间.之后触发 -- sleep number[smhd] 重要参数 number : 时间长度,后面可接 ...

  3. Cheatsheet: 2018 04.01 ~ 04.30

    Web Writing VS Code Extensions with TypeScript Docker How to write excellent Dockerfiles Raspberry P ...

  4. 解决redis在windows下使用start命令行调起时闪退的问题

    start powershell "redis-server.exe" "redis-server.exe" 改成redis-server.exe的绝对路径即可 ...

  5. 移植u-boot.2012.04.01

    /*************************************************** *u-boot版本:u-boot2012.04.01 *gcc版本:arm-linux-gcc ...

  6. 20172319 2018.04.11-16 《Java程序设计教程》 第6周学习总结

    20172319 2018.04.11-16 <Java程序设计教程>第6周学习总结 目录 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题 ...

  7. ok6410 u-boot-2012.04.01移植五支持DM9000

    继ok6410 u-boot-2012.04.01移植四后,开发板基本已支持MLC NAND,但还有一些细节地方修改,这节增加DM9000支持,通过网卡tftp程序到内存,接着通过NAND命令写到NA ...

  8. ok6410 u-boot-2012.04.01移植二修改源码支持单板

    继ok6410 u-boot-2012.04.01移植一后修改代码,对ok6410单板初始化,主要包括时钟.串口.NAND.DDR等初始化.这些工作在以前的裸板程序都写了,直接拿来用.我觉得先写裸板程 ...

  9. 2018/04/25 基于 编译安装的 PHP7 安装 swoole 扩展

    在上一篇文章我们知道了如何去编译安装一个自己需要的 PHP 版本. 2018/04/25 PHP7的编译安装 这里还没有完,我们还需要安装我们的扩展,才算完成今天的任务. -- 下载扩展 还是官网下载 ...

随机推荐

  1. 实现RecyclerView下拉刷新和上拉加载更多以及RecyclerView线性、网格、瀑布流效果演示

    实现RecyclerView下拉刷新和上拉加载更多以及RecyclerView线性.网格.瀑布流效果演示 效果预览 实例APP 小米应用商店 使用方法 build.gradle文件 dependenc ...

  2. Unity3d插件研究之Easytouch

    但我们开发移动端的游戏时,发现使用Input.GetMouseButtonDown的方法不可用,怎么办? 虽然unity3d也有自带触屏的方法,但是使用起来代价太高,什么单击,双击这些功能都要自己封装 ...

  3. 关于Java代码优化的44条建议!

    关于Java代码优化的N条建议! 本文是作者:五月的仓颉 结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化.在修改之前,作者的说法是这样的: 就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼 ...

  4. ylbtech-LanguageSamples-NamedAndOptional(命名和可选参数)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-NamedAndOptional(命名和可选参数) 1.A,示例(Sample) 返回顶 ...

  5. [转]双TOP二分法生成分页SQL类(支持MSSQL、ACCESS)

    本文转自:http://www.cnblogs.com/jitian/archive/2011/03/22/1991961.html 博客开张,先发以前的几个老物件儿,以前写下来的,现在发上来权当记录 ...

  6. 动态加入改动删除html表格内容

    1.需求 须要实现收银台上加入改动删除商品信息时顾显能够实时看到其变化 2.解决 收银台和顾显通过tcp传输进行数据通信,顾显通过操作html中的表格进行数据加入改动和删除操作 3.代码 mytest ...

  7. 014敲代码将一个栈按升序排序,对这个栈是怎样实现的,你不应该做不论什么特殊的如果(keep it up)

    敲代码将一个栈按升序排序. 对这个栈是怎样实现的,你不应该做不论什么特殊的如果. 程序中能用到的栈操作有:push | pop |isEmpty 最easy想到的就是优先队列来做此题.easy实现. ...

  8. Mybatis 一个搜索框对多个字段进行模糊查询

    <select id="list" parameterType="ParamConfigCondition" resultType="Param ...

  9. swift基础语法之控件使用02

    //第一个控制器:显示基础控件 import UIKit class ViewController: UIViewController { var label: UILabel = UILabel() ...

  10. 实现淡入淡出效果的组件,继承自JComponent

    由于仅贴出代码,供有缘人参考. import java.awt.AlphaComposite; import java.awt.Graphics; import java.awt.Graphics2D ...