2017-01-20 22 views
9

Tôi đang sử dụng [email protected]part of the setup bao gồm việc chỉ định ứng dụngIdSuffix.Ứng dụng gốc phản ứng sẽ không bắt đầu khi sử dụng applicationIdSuffix

Tôi đã thiết lập điều này trên một ứng dụng trước đây trong quá khứ mà không gặp vấn đề gì (React Native 0.37). Tôi đã gặp lỗi này hai lần ngay bây giờ với dự án này (React Native 0.40). Lần đầu tiên tôi xây dựng lại toàn bộ dự án của tôi và nó đã biến mất. Nó bắt đầu xảy ra một lần nữa vì không có lý do rõ ràng vì vậy tôi nhân bản phiên bản ổn định cuối cùng của dự án của tôi trong một thư mục mới, và có cùng một lỗi.

Lỗi xảy ra khi sử dụng react-native run-android. Các lỗi xảy ra sau khi xây dựng thành công:

Starting: Intent { cmp=com.packagename/.MainActivity } 
Error type 3 
Error: Activity class {com.packagename/com.packagename.MainActivity} does not exist. 

lỗi sẽ biến mất nếu tôi loại bỏ applicationIdSuffix ".debug" từ app/build.gradle và ứng dụng khởi động trên điện thoại của tôi mà không vấn đề.

Điện thoại của tôi là Nexus 6P với Android 7.0. Tôi đã chỉ thử trên một thiết bị vật lý kể từ khi tôi không có thiết lập mô phỏng.

Tôi đã kiểm tra mọi thứ gấp ba lần đối với dự án khác của mình và tôi không tin đó là vấn đề về cấu hình.

+0

Nó nên chạy sau khi tay tung ra các ứng dụng trên điện thoại. Cũng xảy ra với tôi. – Andreyco

+1

Nó quen thuộc với nhóm phản ứng tôi tin rằng: https://github.com/facebook/react-native/pull/8950 – vonGohren

Trả lời

6

Từ liên kết ở trên, nó đã được thảo luận trong một thời gian dài (trên một năm) trên github, và có vẻ như có một vài bản vá lỗi trên đường, vì vậy sửa chữa của tôi dưới đây có thể hoặc có thể không hoạt động tùy thuộc vào phiên bản react-native bạn đang sử dụng.

Đây là cách tôi (tạm thời) giải quyết được vấn đề. Vấn đề là react-native-cli cố gắng để gọi adb shell am start với lập luận sai:

com.packagename/com.packagename.MainActivity 

khi nó nên được gọi một cái gì đó giống như

com.packagename.debug/com.packagename.MainActivity 

Vì vậy, cho đến khi phiên bản của react-native là cố định, bạn có thể sử dụng lệnh này (theo khuyến cáo trong this code-push PR:

cd android && ./gradlew installDebug && adb -s <DEVICE_ID> shell am start -n com.packageName.debug/com.packageName.MainActivity 

đó không phải là sửa chữa hoàn hảo, nhưng có một miếng vá trên github về cơ bản cũng giống như vậy (liên quan đến một số vấn đề và yêu cầu kéo here & here).

1

Tôi cũng không tìm được giải pháp thực. Ngay bây giờ tôi đang sử dụng một workaround nơi tôi không sử dụng phản ứng-native chạy -... nhưng sử dụng AndroidStudio trực tiếp.

Tôi tìm thấy một gợi ý tại http://sex-gril.com/project/45838.html mà nói rằng bạn phải thêm tên gói vào defaultConfig của bạn trong build.gradle.

android { 
    ... 
    defaultConfig { 
     ... 
     resValue "string", "build_config_package", "Your App ID LIke in Manifest" 
    } 
} 

Nhưng điều đó không hiệu quả đối với tôi = /.

4

này làm việc cho tôi trên phản ứng bản địa 0.50.3

react-native run-android --appIdSuffix "debug"

Các vấn đề liên quan