java.lang.UnsatisfiedLinkError:dlopen failed:cannot locate symbol "tcgetattr" referenced by..

我的安卓app版本是4.4.4,而ndk下載的是最新的r14b。這兩個是不匹配的,因此會報標題上的錯。

解決方法:從兩個地方檢查修改

1.在Android.mk文件中加入如下兩行
APP_PLATFORM := android-19
APP_STL := gnustl_shared

指定編譯的API Level爲19(這是4.4.4版本對應的)

2.修改project配置的ndk版本爲10
4.4.4版本發佈的時間是2014年的6月19號,去ndk列表那裏看,選一個2014年的發佈時間在6月19號之後的ndk版本(r10是July2014,我就選擇了這個,選擇其他的r10版本也沒問題)
附下載鏈接:

ndk_r10(July2014)

Windows32-bit : http://dl.google.com/android/ndk/android-ndk32-r10-windows-x86.zip

Windows64-bit : http://dl.google.com/android/ndk/android-ndk32-r10-windows-x86_64.zip

MacOS X 32-bit : http://dl.google.com/android/ndk/android-ndk32-r10-darwin-x86.tar.bz2

MacOS X 64-bit : http://dl.google.com/android/ndk/android-ndk32-r10-darwin-x86_64.tar.bz2

Linux32-bit (x86) : http://dl.google.com/android/ndk/android-ndk32-r10-linux-x86.tar.bz2

Linux64-bit (x86) : http://dl.google.com/android/ndk/android-ndk32-r10-linux-x86_64.tar.bz2

感想:版本不是越高越好,匹配是王道

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章