最近作一個項目,要用到啓動頁這個來解決啓動白屏,就弄了一下,雖然網上一堆教程,可是仍是踩了一堆坑,如今搞出來了,記錄一下java
下面是插件的GitHub地址node
https://github.com/crazycodeboy/react-native-splash-screenreact
一、npm i react-native-splash-screen --saveandroid
二、react-native link react-native-splash-screen
或者rnpm link react-native-splash-screen
git
安裝完成後查看 android/settings.gradle 文件有沒有下面這兩行代碼,沒有就添加上
github
project(':react-native-splash-screen').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-splash-screen/android')
npm
include ':react-native-code-push'
react-native
三、查看android/app/build.gradle 文件是否有一下代碼
app
compile project(':react-native-splash-screen')
ide
四、查看android\app\src\main\java\com[your project’s name]\MainApplication.java文件,根據版本號引入不一樣jar包
// react-native-splash-screen >= 0.3.1 import org.devio.rn.splashscreen.SplashScreenReactPackage; // react-native-splash-screen < 0.3.1 import com.cboy.rn.splashscreen.SplashScreenReactPackage;
下面是我本身的,大家要根據版本號引入
以後在圖中的位置加上
new SplashScreenReactPackage() 這句代碼
五、查看android\app\src\main\java\com[your project’s name]\MainActivity.java文件,引入兩個jar包
import android.os.Bundle;
import org.devio.rn.splashscreen.SplashScreen;
把紅色框中的代碼寫進去,有就補全,沒有就添加
@Override
protected void onCreate(Bundle savedInstanceState) {
SplashScreen.show(this);
super.onCreate(savedInstanceState);
}
六、在android\app\src\main\res文件夾中新建一個layout文件夾,而後在layout中新建一個launch_screen.xml的文件(文件名必定要是這個名字不要改),在launch_screen.xml文件中添加以下代碼
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/launch_screen"></LinearLayout>
七、準備一個加載時顯示的圖片命名爲launch_screen.png(圖片名必定要是這個名字不要改)而後放在android\app\src\main\res\drawable-xx這個文件中。
安卓的話只用建下圖中的一個文件夾就能夠了,由於安卓會自動縮放
八、在首頁中引入 import SplashScreen from 'react-native-splash-screen'
在生命週期函數裏執行關閉啓動頁就能夠了
九、基本步驟已經完成了,可是打包的時候報錯
這個緣由有些複雜,我也不懂,可是網上大神找到了解決辦法,咱們去android\app\src\main\AndroidManifest.xml這個文件中修改東西,添加一行代碼
tools:replace="android:allowBackup"
而後在綁定一下,就能夠了
至此,啓動頁就OK了,不成功的緣由不少,版本啊,細節沒弄啊均可能致使各類奇葩的錯誤,但願你們一切順利