Android端Fabric Native Component编译报错:无法找到CenteredTextPackage类
解决Fabric原生组件编译时找不到CenteredTextPackage的问题
以下是针对编译错误中cannot find symbol CenteredTextPackage的排查和解决步骤:
检查原生Package类的正确性
确认你编写的Kotlin类CenteredTextPackage位于com.rtncenteredtext包下,类名拼写无大小写错误,且正确实现ReactPackage接口。示例代码:package com.rtncenteredtext import com.facebook.react.ReactPackage import com.facebook.react.bridge.NativeModule import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.uimanager.ViewManager class CenteredTextPackage : ReactPackage { override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> { return emptyList() } override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> { return listOf(CenteredTextManager()) } }确认模块在Gradle中的配置
打开项目根目录的settings.gradle,确保你的原生组件模块被正确引入:include ':rtncenteredtext' project(':rtncenteredtext').projectDir = new File(rootProject.projectDir, '../packages/rtncenteredtext/android')清理缓存并重新构建
执行以下命令清理项目缓存,避免自动生成的PackageList.java存在旧缓存:cd android && ./gradlew clean && cd .. && yarn android手动注册Package(可选)
如果自动生成的PackageList仍未同步,可直接在MainApplication.kt中手动添加Package注册:override fun getPackages(): List<ReactPackage> { val packages = PackageList(this).packages // 手动添加自定义Package packages.add(CenteredTextPackage()) return packages }验证react-native配置文件
检查项目根目录的react-native.config.js,确保正确声明了你的原生组件模块:module.exports = { dependencies: { 'rtncenteredtext': { platforms: { android: { sourceDir: './packages/rtncenteredtext/android', packageImportPath: 'import com.rtncenteredtext.CenteredTextPackage;', packageInstance: 'new CenteredTextPackage()' } } } } };
内容的提问来源于stack exchange,提问作者Dwipal Parmar
相关产品推荐
相关产品推荐

