1、Android锁屏后接收不到推送消息:
(1)、在权限中加入
<uses-permission android:name="android.permission.WAKE_LOCK"/>
(2)、在MainActivity中导入import android.view.Window;
import android.view.WindowManager;
之后在onCreate
方法中加入这段代码:
final Window win = getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED //锁屏状态下显示
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD //解锁
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);//打开屏幕
2、运行iOS在xcode 10 出现 :-1: Multiple commands produce '/Users/.../Library/Developer/Xcode/DerivedData/.../Build...
方法一、删除info.plist文件
方法二、File->Workspaces Settings->Per-user Workspaces Settings下面选择Build System的Legacy Build System选择即可
3、Androidx和Android support库共存问题解决(报错v4.support)
解决方案一 转换成Androidx
1、将build tools更新到3.2.0,gradle更新到4.6,依赖库统一更新到28.0.0,这一步非常重要,否则会导致第二步不能完全转换成功。修改完成后,可以看到依赖库都是28.0.0的
2、选择工程右键→Refactor→Migrate to Androidx...
3、选中所有需要重命名的目录,执行Do Refactor
4、可以发现已经看不到support库了,运行成功安装app。
解决方案二 转换成Android Support
1、查看那些库依赖了Androidx,执行gradlew :app:dependencies(Mac下是:./gradlew :app:dependencies)
2、我这里发现是第三方库implementation 'com.github.chrisbanes:PhotoView:latest.release'引用了Androidx,最新版本是2.2.0中引用了Androidx。
之后可以更改这个库到之前版本:
implementation 'com.github.chrisbanes:PhotoView:2.1.4’
然后可以发现看不到androidx库了,运行成功安装app。
依赖库的时候,尽量不要使用latest.release,而使用具体的版本。
不会因为依赖库更新,引起兼容问题;
减少每次去查找最新版本,可以节省编译时间。
4、react-native修改android 类的包(package)名
假设包名为com.exease.etd.objective,以下地方需要修改。
首先是两个java文件:android/app/src/main/java/com/PROJECT_NAME/MainActivity.java和/MainApplication.java,修改第一行为package com.exease.etd.objective;
然后是安卓的描述文件android/app/src/main/AndroidManifest.xml,第二行把package的至改为com.exease.etd.objective
之后是两个打包脚本。
android/app/BUCK,修改两个package的值package = 'com.exease.etd.objective',
android/app/build.gradle其中的applicationID,改为applicationId "com.exease.etd.objective"
修改完成后,命令行进入android目录,执行./gradlew clean清除缓存即可(windows上是gradlew.bat)
至此差不多修改完成,能够打包出正确包名的apk。不过在开发过程中,如果需要自动link原生模块,会导致命令出错无法link成功。所以还是建议按照java的规范把java文件放入包名匹配的目录中。
把android/app/src/main/java/com/PROJECT_NAME/MainActivity.java和/MainApplication.java两个文件移入新创建的目录android/app/src/main/java/com/exease/etd/objective/里面,就能够愉快的react-native link了。
5、配置fastlane
(1)In the terminal type cd ~/ to go to your home folder
(2)Type touch .bash_profile to create your new empty file
(3)Type open -e .bash_profile to open the file
(4)Enter export PATH="$HOME/.fastlane/bin:$PATH" and save
(5)Restart terminal(not sure needed?)
fastlane自动打包:https://www.jianshu.com/p/7cc48d56a7ac
fastlane插件安装:https://blog.csdn.net/kuangdacaikuang/article/details/80446028
6、查看Android项目中三方库的依赖关系:
./gradlew app:dependencies
如果提示没有权限
-bash: ./gradlew: Permission denied
执行以下命令即可:
chmod +x gradlew
7、使用react-native run-ios找不到iPhone X模拟器
if (!version.startsWith('iOS') && !version.startsWith('tvOS'))更改为
if(!version.startsWith('com.apple.CoreSimulator.SimRuntime.iOS')&& !version.startsWith('com.apple.CoreSimulator.SimRuntime.tvOS'))
未完,持续增加中。。。
网友评论