标签: react-native-android

react-native:如何更新构建工具23.0.2?

当构建生产,签名,apk时,我注意到输出中的这些行:

Running dex in-process requires build tools 23.0.2.
For faster builds update this project to use the latest build tools.
Run Code Online (Sandbox Code Playgroud)

我(想)记住,必须在精确版本23.0.1上安装android构建工具.

我该怎么做才能更新项目?

UPDATE

我卸载了build-tools 23.0.1并安装了23.0.3.

然后我build.gradle按照sfratini的建议更新了文件,但是在构建时我得到了:

Checking the license for package Android SDK Build-Tools 23.0.1 in C:\Users\realtebo\AppData\Local\Android\Sdk\licenses 
License for package Android SDK Build-Tools 23.0.1 accepted. 
Preparing "Install Android SDK Build-Tools 23.0.1".
Run Code Online (Sandbox Code Playgroud)

当然,使用最新构建工具的建议已经消失,但我无法理解为什么旧的构建工具会自动强制安装.

build-tools react-native react-native-android

9
推荐指数
1
解决办法
5687
查看次数

React本机文本输入清除不清除文本

编辑:经过进一步检查,似乎这只发生在Android 6.0.1中.尝试使用6.0的几个设备,这不是一个问题.

我有一个非常简单的React Native代码片段,我想在TextInput中清除文本.它看起来有点像这样:

state = {
  v: ""
};

_changeText = v => {
  this.setState({ v });
};

clear = () => {
  this.textInputRef.clear();
}

render() {
  return (
    <View style={styles.container}>
      <TouchableOpacity onPress={this.clear}>
        <Text> Clear </Text>
      </TouchableOpacity>
      <TextInput
        ref={ref => this.textInputRef = ref}
        value={this.state.v}
        onChangeText={this._changeText}
      />

    </View>
  );
}
Run Code Online (Sandbox Code Playgroud)

现在我期望的行为是让文本输入保持焦点,并清除文本.这就是发生的事情 - 但是,当我开始在键盘上输入内容时,我之前清除的文本会重新出现在文本输入中.显然,这种文本的持久性并不是真正需要的.

有没有人遇到过这个问题?它是RN错误还是有任何方法可以避免这种行为而不需要模糊键盘?

这里有一个小片段来澄清我的意思:https://snack.expo.io/H1S9b5Mpe.

如果您开始输入,请按清除,然后继续输入,之前显示的文本将出现在新键入的文本之前.

react-native react-native-android

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

具有反应导航的DrawerNavigation标题

我在ReactNative上,我正在使用native-base和react-navigation npm.

我得到了这个,我的问题是如何有一个标题,直到按钮"Home",我查看了反应导航的文档,但它并没有真正清除.

https://github.com/react-community/react-navigation/blob/master/docs/api/navigators/DrawerNavigator.md

在此输入图像描述

像这样(图像是固定的,只是在这里放置一个徽标)

在此输入图像描述

javascript navigation-drawer react-native react-native-android react-native-ios

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

如何在React Native中从Java写入console.log

我正在为iOS和Android构建一个React Native原生模块(又名"bridge"),需要使用本机代码(Objective C和Java)登录JS控制台.这在iOS中很容易完成,RCTLog但我无法弄清楚如何在Java中完成.

我试过,Log.i但这些消息不会转发到Javascript.

在这一点上我唯一能想到的就是从Java模块发出一个JS事件,并且在JS端有一个处理程序只是调用console.log消息,但这是一种非常迂回的方式.

我希望能够做一些类似this.getReactApplicationContext().log("see me in the JS console")但没有骰子的事情.有人知道怎么做吗?

react-native react-native-android

9
推荐指数
1
解决办法
938
查看次数

大型列表的React-Native FlatList性能问题

我的代码获取Json数据到一个数组使用a列出数据FlatList.它看起来像电话簿照片和文本连续.

这是我的代码:

  renderItem = ({ item }) => 
    (
    <ListItem
      title={item.username}
      avatar={{ uri: item.photo }}
    />
    )


  render() {
    console.log(this.state.myData);
    return (
      <View style={styles.container}>
        <FlatList
          data={this.state.myData}
          renderItem={this.renderItem}
        />
      </View>
    );
  }
Run Code Online (Sandbox Code Playgroud)

它的工作和我得到输出,但性能很慢.渲染大约需要10秒钟,这对用户来说很烦人.我该怎么做才能让它更快?

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

9
推荐指数
1
解决办法
9550
查看次数

Expo LAN配置不适用于新的ReactNative项目

我在Stackoverflow上看到了类似的问题,但没有一个解决问题。我刚刚从Expo桌面应用程序创建了新的ReactNative项目。但是,当Expo配置设为LAN模式时,无法通过QR码扫描在Android手机上运行它。这似乎无法在我的Android手机上访问(看起来像)。我的手机在同一Wifi网络上。

我还尝试通过关闭防火墙来运行Expo演示应用程序,但仍然没有成功。我相信您的技术外观可能会解决我的问题。

注意:Expo隧道已关闭,这就是为什么它以LAN模式加载的原因。几天前,我尝试了有效的隧道模式。但是,那时LAN也不起作用。因此,可能有人可以指出正确的方向,因此我可以在LAN模式下运行它(位于同一Wifi网络上的电话和计算机上)。

我的IP配置

世博桌面应用程序

Expo App在扫描QR码后尝试加载演示应用程序时

端口19000的Netstat命令结果

react-native react-native-android expo

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

Android React Native中的图像方向问题

我正在使用CameraRoll.getPhotos从画廊获取照片。

import {
  CameraRoll,
} from 'react-native';

CameraRoll.getPhotos(fetchParams).then((data) => {
});
Run Code Online (Sandbox Code Playgroud)

我在某些android手机上的图像方向有问题。我已经能够检测到大多数三星产品中发生的情况。

它的方向取决于您拍摄照片的方式。

portrait with home button in bottom position:90º
landscape with home button left position:180º
portrait with home button in top position:270º
landscape with home button right position:0º

与这个问题有关

根据CameraRoll文档,方向值不会由返回getPhotos。

我正在尝试:

  • transform: [{ rotateX: '0deg' }, { rotateY: '0deg' }] 要么 rotate: '0deg'
  • 使用react-native-media-meta了GET的元数据信息(不适用)
  • 使用其他图像组件代替本机 Image

但值得注意。:(

问题是图像在我的应用程序中似乎旋转了,但是在本机库中却忽略了它们的旋转度,并正确显示为0º。

范例 …

photo-gallery camera-roll react-native react-native-android

9
推荐指数
0
解决办法
1347
查看次数

如何返回网页视图?我在react-native中使用react-navigation包

我在react-native中安装了react-navigation软件包

我已经实现了标签导航,其中之一以webview格式实现。

我的问题是,如果我按Android上的后退物理按钮,则会从应用程序本身转到上一个选项卡,而不是从Web视图中返回。

我已经在互联网上为Webview应用了后退按钮,但是我还没有这样做。

我尝试在调试时显示onNavigationStateChange日志,但是在第一次启动后加载url后移动URL时未更新。这是我实现的代码:

import React from "react";
import {BackHandler} from "react-native";
import {WebView} from "react-native-webview";

class SermonScreen extends React.Component {
    constructor(props) {
        super(props);
    }
    static navigationOptions = {
        header: null
    };

    componentDidMount() {
        BackHandler.addEventListener('hardwareBackPress', this.handleBackButton);
    }

    componentWillUnmount() {
        BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton);
    }

    _onNavigationStateChange(navState) {
        console.log(navState);
        this.setState({
            canGoBack: navState.canGoBack
        });
    }

    handleBackButton = () => {
        console.log(this.state);
        if (this.state.canGoBack === true) {
            this.webView.goBack();
            return true;
        } else {
            return false;
        }
    };

    render() {
        return (
            <WebView
                source={{uri: …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-android react-navigation

9
推荐指数
1
解决办法
703
查看次数

MainApplication.java 中的 getPackages() 方法,该模块可能会创建两次

我正在尝试使用来自https://razorpay.com/docs/payment-gateway/react-native-integration/standard/android/ 的官方文档将 Razorpay 与我的 react-native 应用程序集成,但我收到此异常在运行应用程序时。MainApplication.java 中没有重复的导入。

android react-native react-native-android razorpay

9
推荐指数
3
解决办法
3441
查看次数

角落处泄漏的涟漪效果,好像可按下按钮有一个 borderRadius

在参考了这个文档可按下文档后,我正在使用可按下作为按钮

现在我想为按钮添加涟漪效果,但它无法正常工作。

      <Pressable
        android_ripple={{color: 'red', borderless: false}}
        style={{backgroundColor: 'blue',borderRadius : 10}}>
        <Text style={{alignSelf: 'center'}}>Button</Text>
      </Pressable>
Run Code Online (Sandbox Code Playgroud)

如果按钮具有半径,则波纹效果没有边框半径。波纹效果角超出弯曲半径看起来很尴尬。

reactjs react-native react-native-android react-native-ios react-component

9
推荐指数
2
解决办法
3770
查看次数