2014-01-08 59 views
1

所以我的應用程序主要是崩潰運行低於4.4的設備上,這就是崩潰日誌向我彙報:使用RenderScript支持庫獲取「無法找到符號_Z17rsMatrixTranslateP12rs_matrix4x4fff」?

android.support.v8.renderscript.RSRuntimeException: Loading of ScriptC script failed. 
at android.support.v8.renderscript.ScriptC.<init>(ScriptC.java:69) 
at com.apporio.glitchr.ScriptC_translate.<init>(ScriptC_translate.java:41) 
at com.apporio.glitchr.ImageEffects.fastTransform(ImageEffects.java:417) 
at com.apporio.glitchr.ImageEffects.doNewVHS(ImageEffects.java:308) 
at com.apporio.glitchr.EffectFactory.vhsEffect(EffectFactory.java:70) 
at com.apporio.glitchr.EffectFactory.doEffect(EffectFactory.java:28) 
at com.apporio.glitchr.EffectActivity$8.run(EffectActivity.java:303) 
at java.lang.Thread.run(Thread.java:864) 

在它的崩潰在Java中的一點是:

ScriptC_overlay e = new ScriptC_overlay(rs, context.getResources(), 
      R.raw.overlay); 

的RS文件中有這樣的內核:

void root(const uchar4 *v_in, uchar4 *v_out, const void *usrData, uint32_t x, uint32_t y) { 

    rs_matrix4x4 matrix; 
    rsMatrixLoadIdentity(&matrix); 
    rsMatrixTranslate(&matrix, xAmt, yAmt, 0.0f); //CRASH? 

對於我的生活,我無法弄清楚什麼是錯的。任何想法,堆棧溢出?謝謝您的幫助!

回答

1

不幸的是,我們在支持庫中有許多缺失的符號。這個bug(以及其他缺失的符號)現在都在AOSP中修復,但是在使用之前,您必須等待SDK更新。

+0

感謝您的迴應!那麼,有沒有什麼解決方法可以解決這個問題呢?我討厭我的應用程序在人們的手機上崩潰,希望在SDK更新發布之前我不必取消發佈它。 –

+0

您可以在不使用rs_matrix的情況下編寫它嗎?我知道跳過一些底層優化(並且使您必須編寫/維護更多代碼),但您可能只需從AOSP中的現有C實現中拆除部分即可。 –

+0

所以我重寫了我的腳本,通過基本上重新實現它們來移除丟失符號的出現。它似乎可以在運行4.1-4.4的Nexus設備上運行,但仍然會在我的一些用戶設備上崩潰。如果我編譯AOSP,有沒有辦法提取支持庫並在我的項目中使用它?如果沒有,是否有任何方法來建立你的團隊的修復或他們沒有公開面對呢?感謝您所有的幫助! –