标签: react-native-android

Detox + android 编译 DetoxTest.java 失败

我正在努力奔跑

detox build -c android.emu.release

但是当它尝试编译时失败DetoxTest.java并出现以下错误

  ~/android/app/src/androidTest/java/<package_name>/DetoxTest.java:24: error: cannot find symbol
    public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class, false, false);
                            ^
      symbol:   class MainActivity
      location: class DetoxTest

  ~/android/app/src/androidTest/java/<package_name>/DetoxTest.java:24: error: cannot find symbol
    public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class, false, false);
                                                                                 ^
  symbol:   class MainActivity
  location: class DetoxTest
Run Code Online (Sandbox Code Playgroud)

我尝试从包中导入 MainActivity 但我找不到包。

RN 0.51.1 排毒:7.4.3

react-native-android detox

2
推荐指数
1
解决办法
1322
查看次数

react-native run-androind 第一次报错 500

我刚刚安装了 react native 并创建了一个新项目,但是当我使用react-native run-android命令运行它时,它给出了错误。我没有在刚刚创建的项目的任何文件中更改任何内容。

这是它的错误和屏幕截图。

错误截图

错误

开发服务器返回响应错误码:500

网址:http : //10.0.2.2 : 8081/index.delta?platform=android&dev=true&minify=false

身体:

在“C:\project\test\App.js”中找不到/react-transform-hmr/lib/index.js'。事实上,这些文件都不存在:\n * 'C:\react-transform-hmr\lib\index.js(.native||.android.js|.native.js|.js|.android.json|. native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)'\n * 'C:\react-transform-hmr\lib\index .js\index(.native||.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android .tsx|.native.tsx|.tsx)'\n 在 ModuleResolver.resolveDependency (C:\project\test\node_modules\metro\src\node-haste\DependencyGraph\ModuleResolution.js:209:697)\n 在 ResolutionRequest .resolveDependency (C:\project\test\node_modules\metro\src\node-haste\DependencyGraph\ResolutionRequest.js:83:16)\n 在 DependencyGraph.resolveDependency (C:

请帮我摆脱这个...

android react-native react-native-android

2
推荐指数
1
解决办法
1939
查看次数

强制焦点 ReactNative TextInput

我在强制聚焦本机 TextInput 字段时遇到了麻烦。当页面加载autofocus={true}.

但是在模糊之后,我需要按下文本输入字段,但由于设计原因,这是隐藏的。有没有办法document.getElementById("myText").focus();反应原生,我可以在之后调用onBlur()

干杯。

react-native react-native-android react-native-ios react-native-textinput

2
推荐指数
1
解决办法
1万
查看次数

在抽屉/模式打开时更改本机应用程序中的可访问性焦点

我正在尝试提高 React Native 应用程序的可访问性,但面临以下问题:当用户打开菜单抽屉时,焦点不会更改为模态抽屉内容。相反,向左和向右滑动会聚焦在背景中的内容。

我尝试为抽屉和主要内容区域设置动态无障碍道具:

<NavigationMenu
    importantForAccessibility={isNavigationVisible ? 'yes' : 'no-hide-descendants'}
/>
<DashboardContent
    importantForAccessibility={isNavigationVisible ? 'no-hide-descendants' : 'yes'}
/>
Run Code Online (Sandbox Code Playgroud)

isNavigationVisible抽屉打开时更新的道具在哪里,但这没有效果。

有没有办法在抽屉打开时强制将焦点更改到抽屉?

accessibility reactjs react-native react-native-android react-native-ios

2
推荐指数
1
解决办法
2956
查看次数

使用 VictoryChart 响应原生 flex 布局,图表适合父容器

我有以下渲染功能:

render() {
    return (
        <View style={styles.container}>
            <View style={styles.header}>
                <Text> Header
                </Text>
            </View>
            <View style={styles.services}>
                <Text>Services</Text>
            </View>
            <View style={styles.chart}>

                <VictoryChart>
                    <VictoryLine
                        style={{
                            data: {stroke: "#c43a31"},
                            parent: {border: "1px solid #ccc"}
                        }}
                        data={[
                            {x: 1, y: 2},
                            {x: 2, y: 3},
                            {x: 3, y: 5},
                            {x: 4, y: 4},
                            {x: 5, y: 7}
                        ]}
                    />
                </VictoryChart>    
            </View>
        </View>
    );
}
Run Code Online (Sandbox Code Playgroud)

我在页面底部有某种图表,但我无法强制图表填充其父级,它的专用部分有点溢出,我该如何实现?(我尝试使用flexWrap但没有帮助!)

这是它现在的样子的预览: 在此处输入图片说明

这是我的这个简单设计的样式表:

const styles = StyleSheet.create({
    container: {
        flex: 1,
        backgroundColor: '#F5FCFF',
    },
    header: {
        flex: 1,
        backgroundColor: …
Run Code Online (Sandbox Code Playgroud)

layout flexbox react-native react-native-android victory-charts

2
推荐指数
1
解决办法
2164
查看次数

Google Pay - 错误:请求失败 - 意外的开发者错误,请稍后重试

当我尝试在真实设备上使用 Google Pay 付款(在 TEST 环境中)时,我收到标题中的错误消息。

我曾尝试将“网关”更改为像 google docs 显示的字符串,但到目前为止什么都没有。

const DETAILS = {
id: 'COMPANY',
displayItems: [
  {
    label: 'Phone Bill',
    amount: { currency: 'USD', value: compTotal }
  }
],
total: {
  label: 'COMPANY',
  amount: { currency: 'USD', value: compTotal }
}
};

// GOOGLE PAY
const METHOD_DATA = [{
  supportedMethods: ['android-pay'],
  data: {
    supportedNetworks: ['visa', 'mastercard', 'amex'],
    currencyCode: 'USD',
    environment: 'TEST', // defaults to production
    paymentMethodTokenizationParameters: {
      tokenizationType: 'GATEWAY_TOKEN',
      parameters: {
        gateway: 'braintree',
        'braintree:tokenizationKey': 'sandbox_XXXXXXXXXXX'
      }
    }
  } …
Run Code Online (Sandbox Code Playgroud)

javascript react-native-android payment-request-api google-pay

2
推荐指数
1
解决办法
5791
查看次数

看起来应用程序无权访问本机反应中的位置

我正在制作一个使用 gps 访问用户位置的应用程序。这就是为什么我在 AndroidManifest.xml 中添加了以下几行

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)

下面是我获取用户位置的函数

componentWillMount(){
    navigator.geolocation.getCurrentPosition(
      position => {

        this.setState({
          latitude: position.coords.latitude,
          longitude: position.coords.longitude,

        });
      },
      error => Alert.alert(error.message),
      { enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 }
    );

  }
Run Code Online (Sandbox Code Playgroud)

但这会产生错误,即应用程序无权访问位置,我需要声明

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)

在清单文件中。我尝试了很多方法并找到了一个解决方案,即要求运行时许可。所以我还在我的代码中添加了以下几行

try {
      const granted =  PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
        {
          'title': 'Location Permission',
          'message': 'This app needs access to your location',
        }
      )
      if (granted === PermissionsAndroid.RESULTS.GRANTED) {
        console.log("You can use the location")
      } else {
        console.log("Location permission denied")
      }
    } …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-android

2
推荐指数
1
解决办法
5868
查看次数

如何在 react-native 中显示搜索类型的 Android 键盘

我的应用程序中有一个文本输入,用作搜索栏,我知道 Android 有一个 API 来显示搜索类型键盘,我想知道如何在 react-native 中使用它。

我查看了 react-native 文本输入文档,但没有找到适用于 Android 中该类型键盘的任何内容。

我的屏幕

任何人都知道我可以在文本输入中使用哪种类型的键盘来获得想要的结果?

textinput react-native react-native-android react-native-textinput

2
推荐指数
1
解决办法
4078
查看次数

如何从本机代码中禁用 Android 默认的“Touchable onPress”声音?

我正在用 expo 为原生的 Android 开发应用程序。我正在使用 expo 的 Audio.Sound API 来在我的应用程序中播放不同的声音。令我烦恼的是,每当我按下 TouchableOpacity 组件时,我都会同时收到我的声音和来自 Android 的默认 onPress 声音(只有当我将手机硬件按钮的声音静音时,它才会消失)。我想禁用默认声音。有没有办法从本机代码以编程方式执行此操作?

react-native-android expo

2
推荐指数
1
解决办法
1254
查看次数

导航到登录屏幕后重置堆栈

我正在制作一个 react-native 移动应用程序,我有一个导航抽屉,上面有一个注销按钮。我知道如何从那里导航到登录屏幕,使用props.navigation.navigate('Login'),但问题是如果用户这样做,他们仍然可以从登录屏幕打开抽屉并导航回其他屏幕之一,或者按后退按钮在安卓上。

如果用户来自另一个页面,我想我可以在登录屏幕上进行检查,然后禁用打开抽屉按钮,但这似乎有点麻烦。我想知道是否有正确的方法可以做到这一点,也许是在登录时重置堆栈,我不确定。

react-native react-native-android react-navigation

2
推荐指数
1
解决办法
8292
查看次数