一炒瘟、react-native源碼編譯過程(參考官方文檔從源代碼編譯React Native):
1殴胧、下載ndk:
ndk下載地址:(版本根據(jù)官方文檔訂)
2订咸、在{project}/android 目錄下修改local.properties盖灸,添加一行
windows:(修改為自己路徑)
ndk.dir=C:\\Users\\your_name\\AppData\\Local\\Android\\android-ndk-r13b
mac: (修改為自己路徑)
ndk.dir=/Users/your_unix_name/android-ndk-r13b //版本跟你下載的ndk版本相對應(yīng)
3、在android/build.gradle中添加gradle-download-task依賴
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'de.undercouch:gradle-download-task:3.4.3' // 注意:不要把你的應(yīng)用的依賴放在這里届囚; // 它們應(yīng)該放在各自模塊的build.gradle文件中
}
4有梆、添加:ReactAndroid項目
在android/settings.gradle中添加:ReactAndroid項目
include ':ReactAndroid'
project(':ReactAndroid').projectDir = new File( rootProject.projectDir, '../node_modules/react-native/ReactAndroid')
修改你的android/app/build.gradle文件,使用:ReactAndroid替換預(yù)編譯庫意系。例如用compile project(':ReactAndroid'):替換compile 'com.facebook.react:react-native:0.16.+'
dependencies {
????implementation fileTree(dir: 'libs', include: ['*.jar'])
????implementation 'com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}'
????implementation project(':ReactAndroid')
????...
}
5泥耀、讓第三方模塊使用你的分支
如果你使用第三方的 React Native 模塊,你需要重寫它們的依賴以避免它們?nèi)匀淮虬俜降念A(yù)編譯庫蛔添。否則當(dāng)你編譯時會報錯-Error: more than one library with package name 'com.facebook.react'.(錯誤:有幾個重名的'com.facebook.react'的包)
修改你的android/app/build.gradle文件痰催,添加如下內(nèi)容
configurations.all {
exclude group: 'com.facebook.react', module: 'react-native'
}
6、在 Android Studio 中編譯(時間過長迎瞧,耐心等待)
在 Android Studio 歡迎頁中選擇Import project夸溶,隨后選擇您應(yīng)用所在的文件夾。
您還需要使用Run按鈕(譯注:Android Studio 中綠色的運行按鈕)來在設(shè)備上運行您的 app夹攒,此外 Android Studio 不會自動開啟服務(wù)蜘醋,你還需要通過npm start來啟動開發(fā)服務(wù)胁塞。
7咏尝、clean與build 問題(參考)