Câu trả lời:
Đây là những gì tôi đã làm với nó:
Đóng tất cả các thiết bị đầu cuối và chạy xây dựng lại.
Bạn có thể quên đóng thiết bị đầu cuối nodejs từ một dự án khác và chúng tình cờ đã cài đặt phiên bản phản ứng khác nhau.
Vì vậy, mã tìm nạp từ máy chủ nodejs xung đột với bản gốc.
Bundling 'index.android.js' 100.0% (1/1), done
.
build.gradle
làm việc. cảm ơn @Val
react-native run-ios
pod install
nếu bạn đang sử dụng cocoapods.
Trong trường hợp bạn đã tạo ứng dụng gốc phản ứng của mình bằng ứng dụng tạo-Reac -igen-app. Bạn nên có một app.json (expo). và tệp pack.json, kiểm tra xem các phiên bản expo có khớp và thay đổi tương ứng không. Ví dụ, trong trường hợp của tôi, vấn đề là trong tệp app.json tôi đã có phiên bản 25.0.0 cho thuộc tính expk sdkVersion , tôi thay đổi nó thành 23.0.0 và mọi thứ đều hoạt động.
gói.json:
"dependencies": {
"expo": "^23.0.4",
"react": "16.0.0",
"react-native": "^0.50.4"
}
app.json:
{
"expo": {
"sdkVersion": "23.0.0" // before was 25.0.0
}
}
Chỉ cần đi đến của bạn android/app/build.gradle
và sau đó thêm vào dependencies
phần:
dependencies{
compile ("com.facebook.react:react-native:0.50.3") { force = true }
}
/// phiên bản gốc phản ứng có thể được tìm thấy trong pack.json
chỉ cần phản ứng phiên bản gốc trong tệp phân loại cấp ứng dụng Android của bạn, trong dependencies
phần.
compile ("com.facebook.react:react-native:0.52.0") { force = true }
đã làm cho tôi
npm start -- --reset-cache
và chạyreact-native run-android
Tôi chưa bao giờ thấy lỗi này trước đây, nhưng bất cứ khi nào tôi không thể có được Xcode và React-Native để chơi tốt với nhau, tôi sẽ làm một vài điều. Kiểm tra phiên bản Xcode nào tôi đang làm việc. Nếu nó cần được cập nhật, tôi cập nhật nó. Sau đó, xóa watchman và bộ nhớ cache là nơi thứ hai tôi đi. Tôi không sử dụng lệnh đặt lại bộ đệm. Nó luôn nói rằng tôi cần xác minh bộ đệm, vì vậy tôi bỏ qua điều đó (mặc dù bạn có thể làm điều đó, tôi chỉ bị nhầm lẫn). Tôi sử dụng rm -rf $ TMPDIR / Reac- * để loại bỏ mọi bản dựng được lưu trong bộ nhớ cache. Nếu điều đó không hiệu quả, tôi cố gắng xây dựng ứng dụng trong Xcode, sau đó làm việc theo cách của tôi từ đó, để xây dựng nó với run-ios tự nhiên. Với thông báo lỗi này, có vẻ như bạn có thể bắt đầu bằng cách thử xây dựng nó bằng Xcode. Hy vọng điều đó sẽ giúp ... cho tôi biết sự tiến bộ của bạn với nó. Chúc may mắn! (Ngoài ra, bạn có thể cập nhật lên RN 0.
Nếu bạn đang chạy ứng dụng React Native của mình thông qua hội chợ triển lãm, việc nâng cấp React Native có thể gây ra lỗi này (như đã lưu ý tại https://github.com/expo/expo/issues/923 ).
Nếu đó là kịch bản của bạn, các tùy chọn của bạn là:
package.json
) thành một phiên bản tương thích với phiên bản React Native của bạn ( nếu tồn tại, có thể không phải là trường hợp - đánh giá bởi vấn đề được liên kết, tôi cho rằng Expo hỗ trợ theo dõi các bản phát hành React Native).Tôi đã có vấn đề này trong thời gian dài nhất và không có giải pháp nào ở trên giúp được. Tôi đang trong quá trình nâng cấp create-react-native-app
React bản địa trong một dự án cho đến khi tôi phát hiện ra rằng không phải tất cả các phiên bản Expo đều hỗ trợ React Native mới nhất.
Tìm thấy trang này được liên kết trong tài liệu cho thấy kết hợp phiên bản nào của React Native, React và Expo được hỗ trợ chính thức:
Nguồn: https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md
Chỉnh sửa app.json
và package.json
các tệp để phù hợp với các phiên bản tương ứng và chạy npm install
khiến mọi thứ hoạt động trở lại.
Tôi đang sử dụng một thiết bị vật lý, trong trường hợp của tôi, điều này đã giải quyết vấn đề:
lsof -i :8081
kill -9 PID
react-native run-android
hoặc react-native run-ios
)lsof -i :8081
và xây dựng lại đã làm điều đó cho tôi trên iOS Simulator.
Trong tệp build.gradle của bạn thêm vào như sau
implementation ("com.facebook.react:react-native:0.51.0") {
force = true;
}
thay thế 0.51.0
bằng phiên bản trong gói.json của bạn
Đối với các nhà phát triển Android không thể sửa lỗi bằng cách chỉ đóng và xây dựng lại, hãy gỡ cài đặt thủ công ứng dụng trên trình giả lập / thiết bị.
Đối với tôi đó là do react-native
phiên bản trong dependency
phần của package.json
tập tin. Đó là:
"dependencies": {
"expo": "^27.0.1",
"react": "16.3.1",
"react-native": "~0.55.0"
}
Tôi đã tán thành nó:
"dependencies": {
"expo": "^27.0.1",
"react": "16.3.1",
"react-native": "0.52.0"
}
Bây giờ nó hoạt động tốt.
Đối với trường hợp của tôi, tôi đang đối mặt với nó trên iOS và tôi đã cố gắng thiết lập lại và xóa tất cả bộ đệm bằng lệnh bên dưới nhưng cũng không thành công, mặc dù có nhiều ý kiến cho rằng nguyên nhân gốc là do vô tình đóng gói đang chạy ở đâu đó, tôi đã khởi động lại mac của tôi và vấn đề vẫn còn.
watchman watch-del-all && rm -rf node_modules/ && yarn cache clean && yarn install && yarn start --reset-cache
Giải pháp là, để xóa thư mục build @ /ios/build
, sau đó thực hiện react-native run-ios
giải quyết nó
Tôi đã thử các giải pháp ở trên nhưng việc thêm nó vào AndroidManifest.xml dường như đã khắc phục nó.
android:usesCleartextTraffic="true"
Đối với những người khác có cùng vấn đề trên iOS với CocoaPods:
Tôi đã thử tất cả các giải pháp trên, không có may mắn. Tôi có một số gói với các phụ thuộc riêng trong dự án của tôi và một số mô-đun pod cần thiết đang được cài đặt. Vấn đề là React đã được chỉ định trong Podfile của tôi, nhưng nhóm React không tự động được nâng cấp bằng cách sử dụng react-native-git-upgrade
.
Cách khắc phục là nâng cấp tất cả các nhóm đã cài đặt, bằng cách chạy cd ios && pod install
.
Trong trường hợp của tôi cài đặt một thiết bị ảo mới giúp. Bây giờ tôi đang sử dụng 1 thiết bị cho mỗi ứng dụng.
Người dùng hội chợ triển lãm - đảm bảo app.json
phiên bản sdk và package.json
phiên bản expo của bạn (có thể bằng nhau) tương thích với nhau.
Tôi cũng gặp vấn đề này khi sử dụng Expo và iOS Simulator. Điều làm việc cho tôi là xóa Trình mô phỏng trongHardware > Erase All Content and Settings...
Trong trường hợp của tôi (KHÔNG sử dụng expo & Android build)
pack.json
"dependencies": {
"react": "16.3.1",
"react-native": "0.55.2"
}
Và app.json
{
"sdkVersion": "27"
}
giải quyết vấn đề
Đôi khi nó xảy ra khi bạn cố chạy mà không đóng máy chủ nút, trong đó ứng dụng trước đang chạy, vì vậy hãy thử khởi động lại React.Để làm như vậy, chỉ cần chạy các lệnh sau:
1. To kill current processes
killall node -9
2. To Start React Native
react-native start
3. Then Run android
react-native run-android
Trong trường hợp của tôi, tôi đã thay đổi expo
phiên bản bằng tay. Tôi gặp vấn đề tương tự vì tôi quên cập nhật sdkVersion trong app.json và babel-preset-expo trong pack.json
Sau đó chạy: expo r -c
để xóa bộ nhớ cache và khởi động ứng dụng.
Cách khắc phục chúng tôi đã làm là đảm bảo các biến ANDROID_HOME và PATH được thiết lập trước khi xây dựng.
Đầu tiên, chạy hai lệnh dưới đây, sau đó xây dựng ứng dụng cho thiết bị.
export ANDROID_HOME=/Users/username/MyFiles/applications/androidsdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Tôi đã nhận được lớp này khi định nghĩa kiểu TypeScript không khớp.
EG react-native
ở 0,61,5 trong dependencies
và @types/react-native
0,60,0 trongdevDependencies
.
Ngay sau khi tôi cập nhật devDependencies, nó đã hoạt động. Không phải khởi động lại bất cứ thứ gì.
Đây không phải là một sửa chữa, nhưng trong trường hợp của tôi, tôi đã cài đặt nhiều ứng dụng RN trên thiết bị của mình và tôi đã vô tình cố gắng 'Tải lại' từ bên trong ứng dụng sai. (Hiện tại tôi đang phát triển hai ứng dụng) Vì vậy, hãy đảm bảo bạn đang ở đúng ứng dụng!
Hãy thử thay đổi phiên bản gốc phản ứng được chỉ định trong gói.json của bạn (theo phụ thuộc - phản ứng gốc) thành giống như 'Phiên bản gốc' được hiển thị trong thông báo lỗi. Sau đó chạy lại 'npm install'.
Tôi đã gặp vấn đề tương tự trong khi xây dựng ứng dụng gốc phản ứng của mình cho Android và tôi đã làm những việc sau đây cho tôi.
"Phiên bản JavaScript 1.50.1" trong bảng điều khiển lỗi là phiên bản gốc phản ứng trong package.json
tệp của bạn . Đảm bảo rằng đó là phiên bản tương tự như "Phiên bản gốc 0,50" trong bảng điều khiển lỗi.
react-native run-android
.Opene projectdir / android / app / build.gradle
Thử:
biên dịch ("com.facebook.react: Reac -igen: 0.51.0") {force = true}
Thay vì biên dịch "com.facebook.react: Reac -igen: 0.51.0" {force = true}
Tham chiếu: Liên kết