当我发表我的文章时React Native App,Google Play我收到了这个错误:
此版本不符合 Google Play 64 位要求
以下 APK 或 App Bundle 可用于 64 位设备,但它们只有 32 位本机代码:9 和 24。
在您的应用中包含 64 位和 32 位本机代码。使用 Android App Bundle 发布格式自动确保每个设备架构只接收它需要的原生代码。这可以避免增加应用程序的整体大小。
我该如何解决这个错误?
我想通过创建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
我想console.warn用一行代码删除和所有其他出现在我的本机应用程序上的警告消息。在我通过在App.js 中添加以下内容来实现之前
console.disableYellowBox = true;
Run Code Online (Sandbox Code Playgroud)
但不知何故它现在不起作用,代码仍然存在于我的App.js 中,但黄色框上的警告仍然显示在屏幕底部。由于我的应用程序很大,它使用了几个包,而且我还在console.warn很多地方添加了,我需要一个解决方案来从一个地方禁用它
有人请帮我找出为什么console.disableYellowBox = true;不起作用,或者请提供一些替代解决方案来解决这个问题。
我的本机版本是 0.60.5
任何帮助将非常感激。
提前致谢
我正在尝试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) 我正在开发一个具有4.4 gradle 版本的 react-native 项目(可以在项目文件夹 /android/.gradle/4.4 中找到),但我想将它升级到最新版本 6.0.1。请帮我
我想将红色版本更改为 6.0.1(最新)而不是白色版本
我有一个简单的疑问,希望有人能帮助我。我有一个简单的应用程序,它有一个主屏幕,其中加载我从 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
我正在关注本教程并被动态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) 这是在 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) 我正在尝试将外部 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} …
我按照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执行命令。
react-native ×9
android ×5
google-play ×2
javascript ×2
reactjs ×2
console ×1
dom ×1
fastlane ×1
gradle ×1
npx ×1
powershell ×1
windows ×1