标签: react-native-android

React Native:此版本不符合 Google Play 64 位要求

当我发表我的文章时React Native AppGoogle Play我收到了这个错误:

此版本不符合 Google Play 64 位要求

以下 APK 或 App Bundle 可用于 64 位设备,但它们只有 32 位本机代码:9 和 24。

在您的应用中包含 64 位和 32 位本机代码。使用 Android App Bundle 发布格式自动确保每个设备架构只接收它需要的原生代码。这可以避免增加应用程序的整体大小。

在此处输入图片说明

我该如何解决这个错误?

android google-play react-native react-native-android

3
推荐指数
1
解决办法
2926
查看次数

如何通过 Fastlane 创建 aab(捆绑)?

我想通过创建aab(捆绑)Fastlane,但到目前为止我只能创建apk,这是我的lane现在,如何创建 aab?

 lane :beta do
    store_password = prompt(text: "Signing Store Password: ", secure_text: true)
    key_password = prompt(text: "Alias Key Password: ", secure_text: true)
    releaseFilePath = File.join(Dir.pwd, "..", "my-release-key.keystore")
    gradle(task: 'clean')
    gradle(
      task: 'assemble',
      build_type: 'Release',
      print_command: false,
      properties: {
        "android.injected.signing.store.file" => releaseFilePath,
        "android.injected.signing.store.password" => store_password,
        "android.injected.signing.key.alias" => "my-key-alias",
        "android.injected.signing.key.password" => key_password,
      }
    )
    upload_to_play_store(
      track: 'internal'
    )
Run Code Online (Sandbox Code Playgroud)

android google-play react-native fastlane react-native-android

3
推荐指数
1
解决办法
1508
查看次数

React Native 从应用屏幕底部禁用 console.warn 黄色框

我想console.warn用一行代码删除和所有其他出现在我的本机应用程序上的警告消息。在我通过在App.js 中添加以下内容来实现之前

console.disableYellowBox = true;
Run Code Online (Sandbox Code Playgroud)

但不知何故它现在不起作用,代码仍然存在于我的App.js 中,但黄色框上的警告仍然显示在屏幕底部。由于我的应用程序很大,它使用了几个包,而且我还在console.warn很多地方添加了,我需要一个解决方案来从一个地方禁用它

有人请帮我找出为什么console.disableYellowBox = true;不起作用,或者请提供一些替代解决方案来解决这个问题。

我的本机版本是 0.60.5

任何帮助将非常感激。

提前致谢

console android reactjs react-native react-native-android

3
推荐指数
2
解决办法
3622
查看次数

React Native 中的平面列表图像源

我正在尝试FlatList在 React Native 中渲染一个像图像轮播一样的图像。

我想在资产文件夹中提供图像源并在 renderItem 中传递每个项目源,但我得到错误 undefined is not an object。

这是状态:

export default function App() {
  const [images, setimages] = useState([
    {src:require('./assets/image1.png'),key:'1'},
    {src:require('./assets/image2.png'),key:'2'},
    {src:require('./assets/image3.png'),key:'3'},
    {src:require('./assets/image4.png'),key:'4'},
    {src:require('./assets/image5.png'),key:'5'}
  ]);
Run Code Online (Sandbox Code Playgroud)

这是FlatList

<FlatList
  horizontal={true} 
  showsHorizontalScrollIndicator={false} 
  data={images}
  renderItem={ ({images}) => (
    <Image source={images.src} style={{
      width:260,
      height:300,
      borderWidth:2,
      borderColor:'#d35647',
      resizeMode:'contain',
      margin:8
    }}></Image>
  )}
/>
Run Code Online (Sandbox Code Playgroud)

react-native react-native-android react-native-flatlist

3
推荐指数
1
解决办法
9127
查看次数

如何在本机应用程序中升级 gradle

我正在开发一个具有4.4 gradle 版本的 react-native 项目(可以在项目文件夹 /android/.gradle/4.4 中找到),但我想将它升级到最新版本 6.0.1。请帮我

我想将红色版本更改为 6.0.1(最新)而不是白色版本

在此处输入图片说明

android gradle react-native react-native-android

3
推荐指数
1
解决办法
3322
查看次数

使用 Hooks 使用 React Native 返回时刷新屏幕 A

我有一个简单的疑问,希望有人能帮助我。我有一个简单的应用程序,它有一个主屏幕,其中加载我从 SQLite 数据库获得的所有数据,但是,当我转到“添加到数据库屏幕”并在数据库中添加一些数据和记录时,我使用了一个函数返回上一屏幕 ( props.navigation.goBack())。

不幸的是,当我到达屏幕 A 时,我的钩子不会“刷新”或更新数据库中的数据。有没有办法让它刷新屏幕A以重新调用数据库并使用新数据刷新数据?

ps:为了调用数据库,我使用今天的日期来获取查询中的数据,所以我的日期不会更新。

这是我的代码:

ScreenA.js

import React, { useEffect, useState } from 'react';
import { View, TouchableOpacity, Text } from 'react-native';

export default function ScreenA() {

   const [data, setData] = useState([]);

    useEffect(() => {
        setData(getDataFromApi())
    }, []);

    return(
        <View>
            { apiResponse() }
            <TouchableOpacity onPress={() => { props.navigation.navigate('ScreenB') }}
                <Text>Add data</Text>
            </TouchableOpacity>
        </View>
    )
}
Run Code Online (Sandbox Code Playgroud)

这是 ScreenB.js

import React, { useEffect } from 'react';
import { View, TouchableOpacity, Text } from 'react-native';

export default …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-native react-native-android react-navigation

3
推荐指数
2
解决办法
3727
查看次数

Flex 属性未应用于 TouchableOpacity

我正在关注教程并被动态TouchableOpacity元素卡住了。出于某种原因,没有应用 flex 属性。当我使用 chrome 的开发工具查看元素时,我可以看到它们,但它们没有 flex 属性。如果我手动添加它,我会得到我想要的外观。

这是render片段:

render() {
        const { rgb, size } = this.state;
        const { width } = Dimensions.get('window');

        return (
            <View style={styles.container}>
                <Header fontSize={40} />
                <View
                    style={{
                        height: width * 0.875,
                        width: width * 0.8758,
                        flexDirection: 'row',
                    }}
                >
                    {Array(size)
                        .fill()
                        .map((val, columnIndex) => (
                            <View
                                style={{ flex: 2, flexDirection: 'column' }}
                                key={columnIndex}
                            >
                                {Array(size)
                                    .fill()
                                    .map((val, rowIndex) => (
                                        <TouchableOpacity
                                            key={`${rowIndex}.${columnIndex}`}
                                            style={{
                                                flex: 1,
                                                backgroundColor: `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`, …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-android

3
推荐指数
1
解决办法
471
查看次数

安装 react-native-keychain 后编译失败(android)

这是在 RN0.62.2和 Nodejs上的新安装12.18.0。在yarn添加react-native-keychain后,npx react-native run-android的app启动失败,报错:

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Run CLI with --verbose flag for more details.
Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081
C:\D\code\js\xyz_app\node_modules\react-native-keychain\android\src\main\java\com\oblador\keychain\DeviceAvailability.java:30: error: cannot find symbol
return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FACE);
^
symbol: variable FEATURE_FACE
location: class PackageManager
C:\D\code\js\xyz_app\node_modules\react-native-keychain\android\src\main\java\com\oblador\keychain\DeviceAvailability.java:34: error: cannot find symbol
return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_IRIS);
^
symbol: variable FEATURE_IRIS
location: class PackageManager
2 errors

FAILURE: Build failed with an exception.

    What went wrong:
    Execution …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-android

3
推荐指数
1
解决办法
1922
查看次数

如何从 React Native 中的异步 JS 函数返回变量的值

我正在尝试将外部 URL 加载到 React Native 应用程序中,然后从中提取<title>元素。我不想使用WebView,因为这应该在后台发生。我正在使用dom-parser库来实现它。但是, I 无法返回product_namefrom的值findproduct()。运行该函数时,它确实product_name在控制台中记录了正确的值,表明代码运行良好。但是当我想获取product_name外部的值findproduct()并在其他地方使用时,问题就出现了。

async function findproduct(){
  var DomParser = require('dom-parser');
  var parser = new DomParser()
  const html = (await (await fetch(product)).text()); // html as text
  var dom = parser.parseFromString(html);
  const product_name = dom.getElementsByTagName("TITLE")[0].innerHTML;
  console.log("name="+product_name); //this logs correctly
  return product_name;
}
productname = findproduct(); //this logs something else
console.log(productname);
Run Code Online (Sandbox Code Playgroud)

在这里,productname要么是未定义的,要么是类似{"_U": 0, "_V": 0, "_W": null, "_X": null} …

javascript dom react-native react-native-android

3
推荐指数
1
解决办法
2249
查看次数

React-native:无法初始化类 org.codehaus.groovy.reflection.ReflectionCache

我按照https://reactnative.dev/docs/environment-setup 的说明进行了 React-native 设置

项目已成功创建。

Android 手机也使用 USB 连接,但是当我尝试使用命令在手机上安装应用程序时 -

npx react-native run-android
Run Code Online (Sandbox Code Playgroud)

发生以下错误并且 BUILD FAILED

what went wrong

Could not initialize class org.codehaus.groovy.reflection.ReflectionCache

错误:

Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081
java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7
Run Code Online (Sandbox Code Playgroud)

我正在使用Powershell执行命令。

windows powershell android react-native-android npx

3
推荐指数
1
解决办法
1241
查看次数