Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在react native中向android添加资源id_Android_React Native_Firebase Test Lab - Fatal编程技术网

如何在react native中向android添加资源id

如何在react native中向android添加资源id,android,react-native,firebase-test-lab,Android,React Native,Firebase Test Lab,我试图使用firebase TestLab,但它似乎只能针对resource-id。我的元素如下: <Input {...props} testID="usernameIput" /> 但是testID似乎没有映射到resource-id。如果不是这样做的话,那么如何在react native中访问资源id?如果我不能,在android studio中添加资源id的方法是什么?尝试构建以进行调试。提出了这一解决办法 您可以使用以下方法为调试生成: 然后在捆绑后构建APK: $

我试图使用firebase TestLab,但它似乎只能针对resource-id。我的元素如下:

<Input {...props} testID="usernameIput" />


但是testID似乎没有映射到resource-id。如果不是这样做的话,那么如何在react native中访问资源id?如果我不能,在android studio中添加资源id的方法是什么?

尝试构建以进行调试。提出了这一解决办法

您可以使用以下方法为调试生成:

然后在捆绑后构建APK:

$ cd android
#Create debug build:
$ ./gradlew assembleDebug
#Create release build:
$ ./gradlew assembleRelease #Generated `apk` will be located at `android/app/build/outputs/apk`

在视图上同时使用
accessible
accessibleLabel
(到目前为止,似乎对视图、文本、文本输入都有效),UiAutomator将从
accessibleLabel
生成
content desc
字段

现在,我们可以使用contentdesc来识别标记

可访问性标签上的文档:


{text}

这一点晚了将近4年,但从React Native 0.64开始,
testId
属性现在映射到Android构建中的
资源id
,这意味着依赖该属性的Android测试框架将正常运行


前面使用了
accessibleLabel
的解决方法不应继续使用,因为它实际上破坏了可访问性。此更改的另一个理由是。

社区已经讨论过,最终解决方案是使用“内容描述”作为键。Jason,你找到了如何设置资源id的有效解决方案了吗?@Kholiavko,所以我发现你可以在android studio中打开项目并添加它,就像react native不存在一样。这不会打乱您的react原生构建,这是好的一面,但它非常耗时。我不推荐这个。最后,我使用了ignite框架,这是一个很好的测试框架。哦,天哪,终于到了重构的时候了
$ cd android
#Create debug build:
$ ./gradlew assembleDebug
#Create release build:
$ ./gradlew assembleRelease #Generated `apk` will be located at `android/app/build/outputs/apk`
<Text
    testID="btnText"   //works for iOS
    accessibilityLabel="btnText"    //works for android & iOS content-description
    accessible
  >
    {text}
  </Text>