标签: react-native-android

在发布模式下启动react native活动时出现java.lang.IllegalAccessError

我在现有的Android项目中添加了一个React Native屏幕。

从https://github.com/facebook/react-native/blob/master/local-cli/generator-android/templates/src/app/proguard-rules.pro中复制与本地反应相关的proguard设置 。

但是我想为我的项目启用混淆功能,因此注释了-dontobfuscate行

此后,当我在我的Nexus设备中部署发布版本时,出现此错误: E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #4 Process: com.sampleapp, PID: 2463 java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:300) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) at java.util.concurrent.FutureTask.setException(FutureTask.java:222) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818) Caused by: java.lang.IllegalAccessError: Method 'void android.support.v4.net.ConnectivityManagerCompat.<init>()' is inaccessible to class 'com.facebook.react.modules.netinfo.NetInfoModule' (declaration of 'com.facebook.react.modules.netinfo.NetInfoModule' appears in /data/app/com.sampleapp-1/base.apk) at com.facebook.react.modules.netinfo.NetInfoModule.<init>(NetInfoModule.java:55) at com.facebook.react.shell.MainReactPackage.createNativeModules(MainReactPackage.java:67) at com.facebook.react.ReactInstanceManagerImpl.processPackage(ReactInstanceManagerImpl.java:793) at com.facebook.react.ReactInstanceManagerImpl.createReactContext(ReactInstanceManagerImpl.java:730) at com.facebook.react.ReactInstanceManagerImpl$ReactContextInitAsyncTask.doInBackground(ReactInstanceManagerImpl.java:5091) at com.facebook.react.ReactInstanceManagerImpl$ReactContextInitAsyncTask.doInBackground(ReactInstanceManagerImpl.java:169) at android.os.AsyncTask$2.call(AsyncTask.java:288) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at …

react-native react-native-android

5
推荐指数
0
解决办法
736
查看次数

使用Atom IDE React Native

如何将Atom IDE用于React Native App.我是编程和尝试在Android中开发应用程序的新手.

有人可以为此发布教程或链接.

- 谢谢

atom-editor react-native-android

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

react-native开始报告:错误:未知:错误未知,打开... \。babel.json

我在Windows 7上有一个RN开发环境。它运行良好,直到昨天它在我运行“ react-native”启动后突然报告错误。错误信息:

[2016-12-26 09:58:17]         HMR Server listening on /hot

React packager ready.

fs.js:557
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: UNKNOWN: unknown error, open 'C:\Users\xitao\.babel.json'
    at Object.fs.openSync (fs.js:557:18)
    at Object.fs.writeFileSync (fs.js:1222:33)
    at save (C:\RN\LearnRN\node_modules\babel-register\lib\cache.js:45:16)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
fs.js:557
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: UNKNOWN: unknown error, open 'C:\Users\xitao\.babel.json'
    at Object.fs.openSync (fs.js:557:18)
    at Object.fs.writeFileSync (fs.js:1222:33)
    at save (C:\RN\LearnRN\node_modules\babel-register\lib\cache.js:45:16)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
fs.js:557
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: UNKNOWN: unknown error, open 'C:\Users\xitao\.babel.json'
    at …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-android

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

在React-Native中动态设置RTL/LTR

我想通过属性动态设置我的app'a方向.React Native允许根据设备的默认语言设置方向,但我想根据我对用户数据的locale属性选择方向.

到目前为止,我在MainApplication.java中使用此代码仅强制所有用户使用LTR:

I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
sharedI18nUtilInstance.allowRTL(getApplicationContext(), false);
Run Code Online (Sandbox Code Playgroud)

我现在正在寻找一种方法来将代码中的'false'切换为根据我用户的语言环境更改的布尔值.不知道如何实现......

额外信息:

  • Android设备
  • RN版本:0.40.0

right-to-left react-native react-native-android

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

如何在React Native(Android)中订阅AWS SNS主题?

我尝试使用aws-sdk-react-native模块:

https://github.com/awslabs/aws-sdk-react-native

配置花了一些时间,但由于这个链接,我可以列出主题:

https://github.com/awslabs/aws-sdk-react-native/issues/35

https://github.com/awslabs/aws-sdk-react-native/blob/master/SNS/IntegrationTests/SNSTests.js

该测试包括如何订阅获取电子邮件的示例,但不包括如何在应用程序中获取通知.我不知道如何获得platformEndpoint,PlatformApplicationArn和deviceToken.

endPoint = sns.createPlatformEndpoint({
  PlatformApplicationArn: '{APPLICATION_ARN}',
  Token: '{DEVICE_TOKEN}'
})
...
var subscribeRequest= {
  "Protocol":"application",
  "TopicArn":topicARN,
  "Endpoint":endPoint
}
try{
  await AWSSNS.Subscribe(subscribeRequest);
}catch(e){
  console.error(e);
  shouldResolve = false;
  return shouldResolve;
}
Run Code Online (Sandbox Code Playgroud)

这有样品吗?我也在寻找一个认证样本.使用firebase会更容易吗?

谢谢

amazon-web-services amazon-sns react-native-android

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

在本地视图中单击地图视图上的任意位置时如何放置标记

我的要求是,我需要在地图视图上显示标记。当用户单击地图视图上的任意位置时,还需要获取放置标记的坐标(纬度和经度)。

我在这里尝试的是:

class Maps extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      region: {
        latitude: LATITUDE,
        longitude: LONGITUDE,
        latitudeDelta: LATITUDE_DELTA,
        longitudeDelta: LONGITUDE_DELTA
      },
      marker: {
        latlng: {
          latitude: 17.6868,
          longitude: 83.2185,
          latitudeDelta: LATITUDE_DELTA,
          longitudeDelta: LONGITUDE_DELTA
        }
      }
    };
  }
  onMapPress(e) {
    alert("coordinates:" + JSON.stringify(e.nativeEvent.coordinate));

    this.setState({
      marker: [
        {
          coordinate: e.nativeEvent.coordinate
        }
      ]
    });
  }

  handleMarkerPress(event) {
    const markerID = event.nativeEvent.identifier;
    alert(markerID);
  }

  render() {
    return (
      <MapView
        identifier={"1"}
        ref={component => (this.map = component)}
        provider={this.props.provider}
        style={styles.map}
        region={this.state.region}
        onPress={this.onMapPress.bind(this)}
        //onPress={(event) => …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-android react-native-maps

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

React Navigation Stack Navigator默认阴影样式

我正在使用React Navigation在ReactNative中构建基于标签栏的应用程序类型.

  • "本土反应":"0.44.0",
  • "react-navigation":"^ 1.0.0-beta.9",

我把导航部分固定下来并正常工作.但是关于样式,我在标签栏内的StackNavigator(导航控制器)上看到一个阴影.请参考下图.

在此输入图像描述

我不习惯在本机iOS应用程序上看到这种影子(我是一个尝试RN的iOS移动开发者)

经过进一步调查,我发现在ReactNavigation 中'Card.js'中指定了' shadow'属性.所以我设法解决了该问题在一些更重要的传球cardStyle像这样

cardStyle:{shadowColor:'transparent'}

综上所述,我有两个问题

问题1 为什么这是默认的行为/样式?

为了调试这个问题,我决定在Xcode中快速查看调试,发现'shadow'没有显示在那里. 在此输入图像描述

问题2 为什么会发生这种情况?由于RN应用程序本质上是一个本机应用程序(在本例中为原生iOS),是不是查看调试调试这些视图相关问题的可靠方法?

ios react-native react-native-android react-native-ios react-navigation

5
推荐指数
0
解决办法
1136
查看次数

如何阻止Android硬件后退按钮在react-native的react-navigation中运行?

我正在开发一个琐事游戏,我正在使用反应导航来处理导航,我有3个组件,(新游戏,问题,结果)我不希望用户回到结果页面的问题,如果没有.问题已经用尽,然而,按下后退按钮(Android硬件)正在将他带回问题.然后,我尝试处理硬件后退按钮,如下所示:

componentWillMount() {
      this.props.gameState(true);
      BackHandler.addEventListener('hardwareBackPress', () => {
        if (this.props.gamePlaying) { // Currently set to true. I will set it to false again on NewGame Page.
          this.props.navigation.navigate('NewGame');
        }
      });
    }
Run Code Online (Sandbox Code Playgroud)

但是,这会将用户带到NewGame屏幕,但是立即回弹到结果页面,因为它在NewGame页面中立即触发NAVIGATION/BACK.这又将其带回结果页面.

可能的修复?

我想在登陆NewGame组件页面后停止后退按钮.有办法吗?

我的环境

react-navigation = ^ 1.0.0-beta.11 react-native = 0.44.0

javascript react-native react-redux react-native-android react-navigation

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

React-native-contact updateContact正在更新1个联系人的所有电话号码,而不是特定号码

我们有一个用React-Native编写的移动应用程序,并且使用了本指南中的模块React-native-contact:https : //github.com/rt2zz/react-native-contacts

该应用程序的目的是将数字的前缀从XXX更改为YYY。

联系人人数众多,并且一切正常。但是,我们要为一个联系人更新1个特定的号码,但是很遗憾,它正在更新该联系人的所有号码。我们可以通过以下代码获取在通讯录中找到的联系人列表:

 handleUpdate = () => {
 //phoneContacts => all the contacts found in the address book
 //contactDetails => all the contacts that have the prefix number that needs to be replaced. 
 //prefixNumber => is the prefix number that user wants to replace.
 const { phoneContacts, contactDetails, prefixNumber } = this.state;
 var updated_select = 0;
 var record = null;

  Contacts.getAll( (err, contacts) => {

  _.forEach(contactDetails, (contactD) => {

    if (contactD[1] == true) {

      //where contactD[5] is …
Run Code Online (Sandbox Code Playgroud)

android react-native react-native-android

5
推荐指数
0
解决办法
341
查看次数

React Native:即使退出应用程序,Google地图服务也会继续在Android设备上运行

当应用程序处于前台时,一切似乎都能正常工作.但是当我们强制关闭应用程序时,即使在MapView被销毁之后,地图服务似乎仍然有效.我们正在运行一个后台服务,让应用程序在后台运行.当应用程序关闭时,所有前台服务都会被杀死,但是当应用程序处于后台时,我们发现电池耗尽,当我们运行Android Profiler时,我们知道谷歌地图(csi.gstatic.com)的服务仍处于打开状态/甚至在后台运行.研究并了解谷歌地图使用该服务加载地图的静态内容(images..etc).通常,当MapView被销毁时,服务不应该运行.

当App在前台时当应用程序处于背景/被杀死状态时

第一个图像是应用程序是前台并且服务正常运行.第二个图像是当应用程序被后台/终止时,即使MapView已被破坏,服务仍在运行.(事件是结构服务).有没有办法杀死与MapView相关的所有服务?

android google-maps android-mapview android-background react-native-android

5
推荐指数
0
解决办法
261
查看次数