React-Native:无法在API 16设备上运行应用程序。无法读取属性'长度'为null

时间:2018-03-12 10:03:36

标签: android react-native

我正在尝试在运行react-native的Samsung Galaxy S3上运行4.1.2应用程序。根据{{​​3}}支持此版本。

我使用create-react-native-app并创建了一个简单的未修改应用程序。我尝试使用yarn run android在设备上运行它,但是我收到以下错误:

Error running adb: Error running app. Error: Activity not started, unable to resolve Intent { act=android.intent.action.VIEW dat=exp://192.168.0.10:19000 flg=0x10000000 }
(node:58131) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'length' of null
    at /xdl/src/Android.js:88:18
    at Generator.next (<anonymous>)
    at step (/Users/spongebob/Projects/AwesomeProject/node_modules/xdl/build/Android.js:473:191)
    at /Users/spongebob/Projects/AwesomeProject/node_modules/xdl/build/Android.js:473:361
    at <anonymous>
(node:58131) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)

我的手机已连接:

adb devices
List of devices attached
4790207223d13060    device

尝试使用Genymotion运行时出现此问题,但我通过使用API 19创建模拟器来解决此问题。我的手机是API 16

我知道为什么会收到此错误?我不想更新此三星,因为我特别想在API 16上测试应用程序。如果支持API 16,我无法理解为什么它没有运行。

以下是其他一些信息:

Environment:
  OS: macOS Sierra 10.12.6
  Node: 9.5.0
  Yarn: 1.3.2
  npm: 5.6.0
  Watchman: Not Found
  Xcode: Not Found
  Android Studio: 3.0 AI-171.4443003

Packages: (wanted => installed)
  react: 16.2.0 => 16.2.0
  react-native: 0.54.0 => 0.54.0

1 个答案:

答案 0 :(得分:0)

将操作系统从ubuntu更改为Windows 10后,我遇到了相同的错误。

我通过以下方法解决了

1.set REACT_NATIVE_PACKAGER_HOSTNAME ='my-custom-ip-address-or-hostname'

  1. 检查是否在“系统高级设置”中添加了JAVA_HOME和Path变量。

  2. 将Expo最新版本的apk手动安装到模拟器中(因为npm run android不会自动将expo安装到模拟器中)。

  3. 然后让npm运行android。

对我有用。