Я пытаюсь интегрировать React Native с мое существующее приложение для Android. Я получаю следующее исключение, когда initilizing Реагировать Родной экран:React native expection java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/{package}/lib-main/libgnustl_shared.so" 32-разрядный вместо 64-разрядного
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.snapdeal.main/lib-main/libgnustl_shared.so" is 32-bit instead of 64-bit
Приложение только сбой на 64-разрядных устройств.
По моему обучению до сих пор, я нашел это issue сообщили о Реагировать Native Repo, но solution предложил в этой теме не полезно, как я не использую какие-либо внешние SO библиотеку в существующих приложениях.
Помимо вышеизложенного, я понял другое различие в структуре библиотеки на устройстве, где установлено мое приложение. Я сравниваю структуру моего приложения, а не обычного приложения для демонстрации.
Реагировать демо App
[email protected]_x86_64:**/data/data/com.react.demo/lib** # ls
libfb.so
libfolly_json.so
libglog.so
libglog_init.so
libgnustl_shared.so
libicu_common.so
libimagepipeline.so
libjsc.so
libreactnativejni.so
libreactnativejnifb.so
[email protected]_x86_64:/data/data/**com.react.demo**/lib-main # ls
dso_deps
dso_lock
dso_manifest
dso_state
My App
[email protected]_x86_64:/data/data/**com.my.app**/lib-main # ls
dso_deps
dso_lock
dso_manifest
dso_state
libfb.so
libfolly_json.so
libglog.so
libglog_init.so
libgnustl_shared.so
libicu_common.so
libimagepipeline.so
libjsc.so
libreactnativejni.so
libreactnativejnifb.so
Sharing несколько больше информации о моем проекте:
package.json
{
"name": "projectname",
"version": "1.0.0",
"description": "Native NPM",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node node_modules/react-native/local-cli/cli.js start"
},
"repository": {
"type": "git",
"url": ""
},
"author": "Ishan D",
"license": "ISC",
"dependencies": {
"react": "^15.3.2",
"react-native": "^0.37.0",
"react-native-linear-gradient": "^1.5.15",
"rn-viewpager": "^1.1.3"
},
"devDependencies": {}
}
зависимости, используемых в андроиде родного проекта
ext {
compileSdkVersion = 24
buildToolsVersion = '24.0.2'
minSdkVersion = 16
targetSdkVersion = 24
supportLibrariesVersion = '23.0.1'
playServiceVersion = '9.0.2'
dep = [
fabricPlugin : 'io.fabric',
fabricMavenUrl : 'https://maven.fabric.io/public',
fabricClasspath : 'io.fabric.tools:gradle:1.+',
playServiceClasspath : 'com.google.gms:google-services:1.3.0-beta1',
playServicePlugin : 'com.google.gms.google-services',
playServiceAppindexing: "com.google.android.gms:play-services-appindexing:$playServiceVersion",
playServiceLocation : "com.google.android.gms:play-services-location:$playServiceVersion",
playServiceVision : "com.google.android.gms:play-services-vision:$playServiceVersion",
playServiceAuth : "com.google.android.gms:play-services-auth:$playServiceVersion",
playServiceBase : "com.google.android.gms:play-services-base:$playServiceVersion",
playServiceIdentity : "com.google.android.gms:play-services-identity:$playServiceVersion",
playServiceAnalytics : "com.google.android.gms:play-services-analytics:$playServiceVersion",
playServiceGcm : "com.google.android.gms:play-services-gcm:$playServiceVersion",
underCouchClasspath : 'de.undercouch:gradle-download-task:2.0.0',
underCouchPluigin : 'de.undercouch.download',
crashlytics : 'com.crashlytics.sdk.android:crashlytics:[email protected]ar',
moengage : 'com.moengage:moe-android-sdk:6.0.29',
supportV4 : "com.android.support:support-v4:$supportLibrariesVersion",
supportAppCompatV7 : "com.android.support:appcompat-v7:$supportLibrariesVersion",
supportCardviewV7 : "com.android.support:cardview-v7:$supportLibrariesVersion",
supportDesignV7 : "com.android.support:design:$supportLibrariesVersion",
okhttp : 'com.squareup.okhttp:okhttp:2.5.0',
junit : 'junit:junit:4.12',
mockito : 'org.mockito:mockito-core:1.10.19'
]
}
Любой ключ приветствуются.
PS: Я знаю, что response-native поддерживает 64-битные двоичные файлы, и я не использую какую-либо внешнюю библиотеку.
Также см этот вопрос: https://github.com/facebook/react-native/issues/11027 – ADev
Что порт должен делать с ошибкой ФП в? –
также добавить «armeabi» в abiFilters, без этого это не так. работа на некоторых телефонах, таких как samsung s7, facebook должен делать лучше. задание добавления всех фильтров. нужно добавить, чтобы это работало на всех устройствах. – amIT