看板 AndroidDev 關於我們 聯絡資訊
※ 引述《iincho (世界的盡頭)》之銘言: : 標題: Re: [問題] 要怎麼使用和ASOP一起編出來的.so檔 : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 114.32.193.107 : 推 Shihsuang:我有加System.loadLibrary,看起來是在load的時候跳錯的 08/14 18:04 : → Shihsuang:另外我執行的環境是TF101 android 4.0.3 08/14 18:05 : → Shihsuang:當初我在編譯的時候,有用過android4.0.1編過,但是跳出 08/14 18:06 : → Shihsuang:error: undefined reference to android::ISurfaceCompo 08/14 18:07 : → Shihsuang:ser::asInterface(android::sp<android::IBinder> const 08/14 18:07 : → Shihsuang:&)這個錯誤 跟執行時的錯誤好像是同樣原因?? 08/14 18:08 應該是系統share library版本的問題,大概4.0的SurfaceFilinger又改了啥... (不要懷疑,這部分通常是跳版號改最大的) 要確認這一點可以把可以把TF101上面的.so拉出來用nm把symbol倒出來看, 看不懂的話去暴力搜尋兩版的android相關的code是不是有大改過, 這是因為這隻程式真正的功能是跑在系統的service上,需要系統的library支持 才能存取相關功能,最好是同一版號,才能保證那些系統lib export出來的 function是一致的。 你要確認的是4.0的compose->captureScreen的界面沒有改動... 剛剛找了一下4.0.1的code: http://www.oschina.net/code/explore/android-4.0.1/libs/gui/ ISurfaceComposer.cpp BpSurfaceComposer裡面的captureScreen原型是 captureScreen(DisplayID dpy, sp<IMemoryHeap>* heap, uint32_t* width, uint32_t* height, PixelFormat* format, uint32_t reqWidth, uint32_t reqHeight, uint32_t minLayerZ, uint32_t maxLayerZ) 足足有九個參數,而你那個範例呼叫的screenCapture只有七個參數, 這就是問題所在。 -- Beware of bugs in the above code; I have only proved it correct, not tried it. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.193.107 ※ 編輯: iincho 來自: 114.32.193.107 (08/15 01:20)
Shihsuang:這個部份我有發現到,我忘記提到,我後來有多加2個參數 08/15 12:40
Shihsuang:才遇到這個問題的,當初這個問題跳出的錯誤是在captureS 08/15 12:41
Shihsuang:creen這個函式,所以就有修正了 08/15 12:41
Shihsuang:我也有去看過source code,但是看起來好像是有定義asInt 08/15 12:42
Shihsuang:erface這個函數了 08/15 12:43
Shihsuang:在framework/base/include/binder/IInterface.h這裡有定 08/15 12:46
Shihsuang:義DECLARE_META_INTERFACE和IMPLEMENT_META_INTERFACE 08/15 12:46
Shihsuang:ISurfaceComposer裡面也有去呼叫,所以我不懂為什麼找不 08/15 12:49
Shihsuang:到asInterface這個函式? 08/15 12:50
Shihsuang:再次謝謝您的回覆<(_ _)> 08/15 12:55
iincho:如果有加參數不應該用4.0.1去build不過喔XD 08/15 13:31
iincho:asInterface是一定會有的,因為那是系統生出來的... 08/15 13:31
Shihsuang:程式碼http://ppt.cc/dRSx 編譯結果http://ppt.cc/T1sL 08/15 13:55
Shihsuang:是我哪裡有改錯嗎?? 08/15 13:55
iincho:你的Android.mk貼出來看看? 08/16 23:36
iincho:老實講看到這個訊息我會覺得是少Lib.... 08/16 23:37