2011-11-28 82 views
0

我面臨在我的android代碼原生崩潰問題。
我的應用程序類似於此scenario (Click here)中描述的應用程序。崩潰與malloc和Android本機代碼免費

Java層會通過調用一些本機API調用本地層並引發一些進程。
本機調用在本機中啓動線程進行處理時立即返回。
一旦處理完成,本地線程將調用java函數(回調函數)來通知結果。這是通過使用JNI函數並使用* jvm-> AttachCurrentThread()完成的。

我從日誌貓的堆棧跟蹤轉儲中看到的是,它甚至沒有完成處理,並且總是在malloc或free(在某些malloc之後或某些frees之後並且不一致)之後崩潰。

有無論如何發現在android本機代碼中的內存損壞?

正如在android.mk文件中添加

LOCAL_EXPORT_LDLIBS += -lc 

標誌在上述鏈路我試圖與該溶液中提到。但它沒有幫助,但我仍然能夠觀察到碰撞事故。

請讓我知道是否有人知道相同的解決方案。

P.S:我用於本地處理的代碼已完全針對其他產品(不在android上)進行測試。嘗試移植到android時遇到問題。

感謝&問候,
SSuman185

+1

你能給最小的可行樣品嗎? – qrtt1

+0

我嘗試過,但無法創建可行的示例。 – Suman

回答

0

我發現這個問題,其實memset的()釋放內存後,正在做。令人驚訝的是,這段代碼已經發布並且可以在其他平臺上正常工作。但它在Android中導致崩潰。