React Native 0.70.5自动链接失效,移除手动链接后应用崩溃求助
React Native 0.70.5自动链接失效导致应用启动崩溃
使用React Native 0.70.5版本,该版本原生支持依赖库自动链接,但实际使用@react-native-clipboard/clipboard等需要原生API的依赖时,自动链接无法生效。
执行以下操作后,编译成功但应用启动即崩溃,控制台无报错信息,多次启动均出现相同问题:
- 删除node_modules文件夹
- 移除所有原生文件中的手动链接代码
- 执行
yarn命令重新安装依赖 - 在android目录执行
./gradlew clean命令
保留手动链接代码时,编译成功且应用可正常运行;移除手动链接后出现上述崩溃问题。
package.json依赖内容
"dependencies": { "@react-native-async-storage/async-storage": "^1.17.10", "@react-native-clipboard/clipboard": "^1.11.2", "@react-native-community/geolocation": "^3.0.4", "@react-navigation/drawer": "^6.6.2", "@react-navigation/native": "^6.1.6", "@redux-devtools/extension": "^3.2.5", "axios": "^0.27.2", "centrifuge": "^3.1.0", "date-fns": "^2.29.3", "date-fns-tz": "^1.3.7", "lodash.isequal": "^4.5.0", "metro-config": "^0.73.4", "prettier": "^2.8.1", "react": "18.1.0", "react-native": "0.70.5", "react-native-android-open-settings": "^1.3.0", "react-native-biometrics": "^2.2.0", "react-native-config": "^1.5.0", "react-native-gesture-handler": "2.8.0", "react-native-maps": "^0.31.0", "react-native-outside-press": "^1.1.0", "react-native-paper": "^5.1.0", "react-native-permissions": "^3.3.1", "react-native-reanimated": "^2.0.0", "react-native-safe-area-context": "^4.5.3", "react-native-screens": "^3.20.0", "react-native-svg": "^12.3.0", "react-native-table-component": "^1.2.2", "react-native-touch-id": "^4.4.1", "react-native-vector-icons": "^9.2.0", "react-native-webview": "^11.23.1", "react-native-yamap": "^4.1.14", "react-redux": "^7.2.2", "redux": "^4.2.0", "redux-persist": "^6.0.0", "redux-saga": "^1.1.3" }, "devDependencies": { "@babel/core": "^7.17.9", "@babel/runtime": "^7.17.9", "@react-native-community/eslint-config": "^3.2.0", "@tsconfig/react-native": "^2.0.3", "@types/jest": "^29.2.4", "@types/lodash.isequal": "^4.5.6", "@types/react": "^18.0.26", "@types/react-native": "^0.70.8", "@types/react-native-table-component": "^1.2.4", "@types/react-native-vector-icons": "^6.4.13", "@types/react-redux": "^7.1.25", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^28.0.0", "babel-plugin-import-glob": "^2.0.0", "cross-env": "^7.0.3", "eslint": "^8.14.0", "jest": "^28.0.0", "metro-react-native-babel-preset": "0.72.3", "react-native-svg-transformer": "^1.0.0", "react-test-renderer": "18.1.0", "typescript": "^4.9.4" }
移除的手动链接代码
app/build.gradle中移除的代码
implementation project(':react-native-config') implementation project(':@react-native-community-clipboard') implementation project(':react-native-reanimated')
MainApplication.java中移除的导入及注册代码
import com.th3rdwave.safeareacontext.SafeAreaContextPackage; import com.swmansion.rnscreens.RNScreensPackage; import com.swmansion.gesturehandler.RNGestureHandlerPackage; import com.reactnativecommunity.asyncstorage.AsyncStoragePackage; import com.rnfingerprint.FingerprintAuthPackage; import ru.vvdev.yamap.RNYamapPackage; // missing some code new FingerprintAuthPackage(), new RNYamapPackage(), new SvgPackage(), new ClipboardPackage(), new ReanimatedPackage()
android/settings.gradle中移除的代码
include ':react-native-reanimated' project(':react-native-reanimated').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-reanimated/android')
内容的提问来源于stack exchange,提问作者Висхан
相关产品推荐
相关产品推荐

