Re: [問題] 要怎麼使用和ASOP一起編出來的.so檔
※ 引述《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)
推
08/15 12:40, , 1F
08/15 12:40, 1F
→
08/15 12:41, , 2F
08/15 12:41, 2F
→
08/15 12:41, , 3F
08/15 12:41, 3F
→
08/15 12:42, , 4F
08/15 12:42, 4F
→
08/15 12:43, , 5F
08/15 12:43, 5F
推
08/15 12:46, , 6F
08/15 12:46, 6F
→
08/15 12:46, , 7F
08/15 12:46, 7F
→
08/15 12:49, , 8F
08/15 12:49, 8F
→
08/15 12:50, , 9F
08/15 12:50, 9F
推
08/15 12:55, , 10F
08/15 12:55, 10F
→
08/15 13:31, , 11F
08/15 13:31, 11F
→
08/15 13:31, , 12F
08/15 13:31, 12F
推
08/15 13:55, , 13F
08/15 13:55, 13F
→
08/15 13:55, , 14F
08/15 13:55, 14F
→
08/16 23:36, , 15F
08/16 23:36, 15F
→
08/16 23:37, , 16F
08/16 23:37, 16F
討論串 (同標題文章)