我同时购买了两台三星 Galaxy S2,一台装有 Android 2.3.4,一台装有 4.0.3。
我的 java 类初始化了几个本地库(FFMPEG)并启动了一个 AsyncTask 来转换两个文件。
在4.0.3的设备上,我可以启动两次AsyncTask进行两次不同的转换,任务成功结束。
在 2.3.4 的设备上,第一个任务启动正常,当我启动第二个任务时,应用程序重新启动(本机崩溃)
我认为不同之处可能在于系统如何加载本机库?可能在 ICS Google 上修复了什么?我可以检查什么?
更新
启用 CheckingJNI,我在 LogCat 中收到此错误:
06-04 18:43:40.343:A/libc(28648):@@@ 中止:internal_realloc 中的堆地址无效