当我将第三方组件添加到 React Native 应用程序(例如这个)时,它经常说由于自动链接,您不必遵循手动链接步骤。对于 Android,我注意到手动链接步骤中没有添加任何代码,例如向 中添加代码MainApplication.java
,也没有自动添加。
谁能解释这里发生了什么?尽管自动链接,我是否需要为 Android 执行手动链接步骤?
当我将第三方组件添加到 React Native 应用程序(例如这个)时,它经常说由于自动链接,您不必遵循手动链接步骤。对于 Android,我注意到手动链接步骤中没有添加任何代码,例如向 中添加代码MainApplication.java
,也没有自动添加。
谁能解释这里发生了什么?尽管自动链接,我是否需要为 Android 执行手动链接步骤?
对于android,它不需要链接。从 react-native 0.6 开始,自动链接不会直接添加 int MainApplication.java
。
在 android settings.gradle 中,你可以看到这段代码:
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle");
在native_modules.gradle
它会添加包。代码很复杂。看了几天,只知道一点。但我们可以从名字和评论中得到。
def generatedFileName = "PackageList.java"
def generatedFilePackage = "com.facebook.react"
...
/**
* Include the react native modules android projects and specify their project directory
*/
void addReactNativeModuleProjects(DefaultSettings defaultSettings)
//here are add the package list
/**
* Adds the react native modules as dependencies to the users `app` project
*/
void addReactNativeModuleDependencies(Project appProject)
/**
* Code-gen a java file with all the detected ReactNativePackage instances automatically added
*
* @param outputDir
* @param generatedFileName
* @param generatedFileContentsTemplate
*/
void generatePackagesFile(File outputDir, String generatedFileName, String
generatedFileContentsTemplate)
最后,我们只应该知道我们不需要链接。