我在现有的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 …
如何将Atom IDE用于React Native App.我是编程和尝试在Android中开发应用程序的新手.
有人可以为此发布教程或链接.
- 谢谢
我在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) 我想通过属性动态设置我的app'a方向.React Native允许根据设备的默认语言设置方向,但我想根据我对用户数据的locale属性选择方向.
到目前为止,我在MainApplication.java中使用此代码仅强制所有用户使用LTR:
I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
sharedI18nUtilInstance.allowRTL(getApplicationContext(), false);
Run Code Online (Sandbox Code Playgroud)
我现在正在寻找一种方法来将代码中的'false'切换为根据我用户的语言环境更改的布尔值.不知道如何实现......
额外信息:
我尝试使用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会更容易吗?
谢谢
我的要求是,我需要在地图视图上显示标记。当用户单击地图视图上的任意位置时,还需要获取放置标记的坐标(纬度和经度)。
我在这里尝试的是:
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 Navigation在ReactNative中构建基于标签栏的应用程序类型.
我把导航部分固定下来并正常工作.但是关于样式,我在标签栏内的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
我正在开发一个琐事游戏,我正在使用反应导航来处理导航,我有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
我们有一个用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) 当应用程序处于前台时,一切似乎都能正常工作.但是当我们强制关闭应用程序时,即使在MapView被销毁之后,地图服务似乎仍然有效.我们正在运行一个后台服务,让应用程序在后台运行.当应用程序关闭时,所有前台服务都会被杀死,但是当应用程序处于后台时,我们发现电池耗尽,当我们运行Android Profiler时,我们知道谷歌地图(csi.gstatic.com)的服务仍处于打开状态/甚至在后台运行.研究并了解谷歌地图使用该服务加载地图的静态内容(images..etc).通常,当MapView被销毁时,服务不应该运行.
第一个图像是应用程序是前台并且服务正常运行.第二个图像是当应用程序被后台/终止时,即使MapView已被破坏,服务仍在运行.(事件是结构服务).有没有办法杀死与MapView相关的所有服务?
android google-maps android-mapview android-background react-native-android
react-native ×7
android ×2
amazon-sns ×1
atom-editor ×1
google-maps ×1
ios ×1
javascript ×1
react-redux ×1