<Header
style={{ backgroundColor: "#276adc" }}
androidStatusBarColor="#276adc"
iosBarStyle="light-content"
>
React Native项目用Android Studio打包APK总是旧版本
直接在模拟器上运行或是Debug运行,都没问题。但是,用Android Studio生成的APK安装包,总是旧版本。
解决办法:
对于React Native,勿用Android Studio进行APK打包,直接使用命令行方式进行打包。(gradlew assembleRelease)
React Native打包Android APK安装包出错: Original is here. The version qualifier may be implied.
React Native项目,用命令打包Android APK安装包,执行命令gradlew assembleRelease后,总是报如下错误:
/Users/liujin/Downloads/xxx/android/app/build/intermediates/res/merged/release/drawable-mdpi-v4/androidjs_imagebag_pageonei_wkt1.jpg: error: Duplicate file.
/Users/liujin/Downloads/xxx/android/app/build/intermediates/res/merged/release/drawable-mdpi/androidjs_imagebag_pageonei_wkt1.jpg: Original is here. The version qualifier may be implied.
解决办法:
用Android Studio打开android目录,找到res/drawable目录,把里面的图片文件都删掉(因为这些图片都是React Native自动生成的,所以删除即可)。再次重新执行gradlew assembleRelease命令就不会报错了。
shareSDK的菜单标题为英语
参考文章:http://www.jianshu.com/p/5b5c2293b11c
shareSDK的菜单标题为英语
解决:
一般语言是根据手机语言转换的.但是有时候也会遇到应用语言和本机语言不匹配的结果.这种情况下,这种情况下,可以通过下边图中方法解决。
React Native 0.32以下版本Xcode8报错解决办法
原文地址:http://reactnative.cn/post/2595
RCTSRWebSocket.m报错
Ignoring return value of function declared with warn_unused_result attribute
这个报错在此文件中有两处,代码
SecRandomCopyBytes(kSecRandomDefault, sizeof(uint32_t), (uint8_t *)mask_key);
修改为
(void)SecRandomCopyBytes(kSecRandomDefault, sizeof(uint32_t), (uint8_t *)mask_key);
前面加上(void)
。
RCTScrollView.m 报错
Use of undeclared identifier ‘_refreshControl’; did you mean ‘refreshControl’?
@implementation RCTCustomScrollView
{
__weak UIView *_dockedHeaderView;
RCTRefreshControl *_refreshControl; // 加入此行
}
React Native Network Request Failed解决方案
原文地址:http://blog.csdn.net/joyfixing/article/details/52535922
今天在用React Native写一个网络请求的demo时模拟器一直提示Network Request Failed
,很是苦恼,百度搜索好久都没有找到我想要的答案,stackoverflow上有人说这个错误只在开发模式下出现,生产版本不会出现,但这根本没有解决问题。还有人说:如果使用fetch获取数据,用的是POST方法,注意headers要添加请求头。当请求为GET时不能用body,当为POST时必须包含body,设置头部之后就一切正常了。但我的fetch用的是GET方法不需要添加任何头,所以Network Request Failed的问题还没有解决。
为了防止代码出错,我直接复制了官方示例代码,如下
fetch('http://facebook.github.io/react-native/movies.json')
.then((response) => response.json())
.then((responseJson) => {
console.log(responseJson.movies);
return responseJson.movies;
})
.catch((error) => {
console.error(error);
});
居然还不行,我直接把这段代码放到浏览器console控制台运行,发现一切正常,控制台成功输出内容。那就有可能是iOS模拟器的问题了。
既然fecth api有问题那就换用XMLHttpRequest试试看,然后控制台输出了the resource could not be loaded because the app transport security policy requires the use of a secure connection,百度搜索下才发现是iOS9引入了新特性App Transport Security (ATS)。新特性要求App内访问的网络必须使用HTTPS协议,意思是Api接口以后必须是HTTPS。但是我的项目使用的是HTTP协议,现在也不能马上改成HTTPS协议传输。
还好有替代解决方案
1. 在Info.plist中添加NSAppTransportSecurity类型Dictionary。
2. 在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES
具体操作可以参考这篇文档iOS9 HTTP 不能正常使用的解决办法