Tôi đang cố gắng tích hợp React Native với Ứng dụng Android hiện có của tôi. Tôi nhận được ngoại lệ sau, khi khởi tạo React Native Screen:Phản hồi truy vấn gốc java.lang.UnsatisfiedLinkError: dlopen không thành công: "/data/data/{package}/lib-main/libgnustl_shared.so" là 32-bit thay vì 64-bit
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.snapdeal.main/lib-main/libgnustl_shared.so" is 32-bit instead of 64-bit
Ứng dụng chỉ gặp sự cố trên thiết bị 64 bit.
Theo nghiên cứu của tôi cho đến nay, tôi đã tìm thấy số này issue được báo cáo trên React Native Repo, nhưng đề xuất trong đề tài này không hữu ích vì tôi không sử dụng bất kỳ thư viện SO bên ngoài nào trong Ứng dụng hiện có.
Ngoài những điều trên, tôi đã nhận ra sự khác biệt về cấu trúc thư viện trên thiết bị mà Ứng dụng của tôi được cài đặt. Tôi đang so sánh cấu trúc của Ứng dụng của tôi so với ứng dụng bản gốc phản ứng.
Phản ứng bản demo 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
Chia sẻ vài chi tiết về dự án của tôi:
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": {}
}
phụ thuộc được sử dụng trong dự án có nguồn gốc android
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]',
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'
]
}
Bất kỳ đầu mối được đánh giá cao.
PS: Tôi biết rằng bản địa phản ứng không hỗ trợ các tệp nhị phân 64 bit và tôi không sử dụng bất kỳ thư viện bên ngoài nào.
Đồng thời xem vấn đề này: https://github.com/facebook/react-native/issues/11027 – ADev
Cổng phải làm gì với lỗi của OP? –
cũng thêm "armeabi" vào abiFilters, nếu không có nó thì không. làm việc trên một số điện thoại như samsung s7, facebook nên làm tốt hơn. công việc thêm tất cả các bộ lọc. người ta cần phải thêm để đảm bảo điều này hoạt động trên tất cả các thiết bị. – amIT