[React Native] 踩坑記錄:
/SoLoader: couldn't find DSO to load: librealmreact.so caused by: dlopen failed: "/data/data/com/XXXX/lib-main/librealmreact.so" is 32-bit instead of 64-bit
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: librealmreact.so caused by: dlopen failed: "/data/data/com.xxx/lib-main/librealmreact.so" is 32-bit instead of 64-bit
React native expection java.lang.UnsatisfiedLinkError: dlopen failed: “/data/data/{package}/lib-main/libgnustl_shared.so” is 32-bit instead of 64-bit #11027
Android不能同時(shí)加載32和64位本機(jī)庫。 如果您至少有一個(gè)依賴庫使用ARM64支持編譯的擴(kuò)展,而另外一些依賴庫僅支持ARM32,就會(huì)出現(xiàn)問題铐然。 系統(tǒng)將檢測(cè)ARM64依賴關(guān)系蔬崩,加載它恶座,然后拒絕加載僅ARM32的so庫,就可能導(dǎo)致應(yīng)用程序崩潰沥阳。
在project的root目錄下的build.gradle中添加如下代碼跨琳。
android {
...
defaultConfig {
...
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
}
參考:
https://blog.csdn.net/u013531824/article/details/53931307
https://github.com/facebook/react-native/issues/11027