dlopen()
在API-23中工作正常,但對於Android-N,當我試圖用dlopen
打開任何軟件時,它返回一個soinfo
結構類型指針。但是當我試圖訪問這個結構的任何變量時,應用程序就會崩潰。dlopen()與android-n不兼容
si = (soinfo*) dlopen("/data/app/com.xxx.xxx.sampleapp.android-1/lib/x86/libtest.so", RTLD_GLOBAL);
if (si == NULL)
return;
LOGI("value of dlopen [%d]", si->size);
在Android-N中是否有任何dlopen()
功能的變化?
在提問中,提問者指出'dlopen'事實上並不返回NULL。還有其他事情必須在這裏發生,你同意嗎? –
是的。它不會返回NULL。它返回一個無法訪問的內存指針。這就是爲什麼我感到驚訝。 – vinit
它實際上並不是一個_pointer_,它是一個_handle._含義:不要試圖通過它訪問內存。 –