首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在KMM中使用firebase-bom依赖项时,为什么会出现"Unresolved reference: platform“

在KMM中使用firebase-bom依赖项时,出现"Unresolved reference: platform"错误是因为在项目的build.gradle文件中没有正确配置firebase-bom的依赖项。

为了解决这个问题,你需要按照以下步骤进行操作:

  1. 确保你的项目中已经正确引入了Kotlin Multiplatform Mobile(KMM)插件。在项目的build.gradle文件中,应该包含类似于以下代码的配置:
代码语言:txt
复制
plugins {
    id 'org.jetbrains.kotlin.multiplatform' version '1.5.31'
    // 其他插件配置...
}
  1. 在项目的build.gradle文件中,找到KMM模块的配置部分。这通常是在kotlin闭包内,类似于以下代码:
代码语言:txt
复制
kotlin {
    // KMM模块的配置...
}
  1. 在KMM模块的配置中,添加sourceSets闭包,并在其中添加commonMain闭包。在commonMain闭包中,添加dependencies闭包,并在其中添加firebase-bom的依赖项。代码示例如下:
代码语言:txt
复制
kotlin {
    // KMM模块的配置...
    
    sourceSets {
        commonMain {
            dependencies {
                implementation 'com.google.firebase:firebase-bom:28.4.1'
                // 其他依赖项...
            }
        }
    }
}
  1. 保存并同步项目的build.gradle文件。

现在,你的KMM项目应该能够正确引入firebase-bom的依赖项了。如果还有其他依赖项或配置问题,你可以参考相关文档或搜索引擎来解决。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

KMM跨平台开发入门,看这一篇就够了~

通过KMM开发者可以在 iOS 和 Android 应用程序之间共享通用代码,并仅在必要时编写特定于平台的代码。 ...由于KMM还不是特别的成熟,所以建议开发者将Kotlin插件也升级到最新版本,避免出现一些兼容性问题。...源集是一个 Gradle 概念,用于逻辑上组合在一起的多个文件,其中每个组都有自己的依赖项。 在 Kotlin Multiplatform 中,共享模块中的不同源集可以针对不同的平台。 ...可以使用 CocoaPods 或其他依赖项管理器的原生 iOS 项目和使用 Gradle 的 Android 项目中使用。...写在最后 到这里,恭喜你,已经入门了KMM的使用,更多的使用方法需要在实际项目中不断地去总结,去尝试,Jetpack目前也在开发KMM版本,这对KMM发展将会是一个推进~

4.7K20

KotlinNative KMM项目架构

在 KMM 的帮助下,您可以在 iOS 和 Android 应用程序之间共享通用代码,并仅在必要时编写特定于平台的代码。...Android/iOS业务SDK层:主要是包括一些现有的Android/iOS SDK,需要直接依赖现有SDK来开发KMM时,在commonMain expect声明接口,在androidMain、iosMain...当然如果依赖了一些库如ktor网络库,包也会变大,避免这个问题也可以不用依赖ktor,直接依赖现有的网络库来实现一个KMM SDK。...四、依赖现有的Android/iOS SDK开发KMM SDK alog的实现过于简单,使用了android.util.Log、platform.Foundation.NSLog。...上面说到的第1点本地构建,在iosApp本地依赖构建sdkframework时,要将依赖项正确导入 Kotlin/Native 模块,Podfile必须包含use_modular_headers!

3.3K00
  • 谷歌社区说|聊聊Compose跨平台与KMM

    通过KMM,开发者可以在 iOS 、 Android、Desktop与Web 应用程序之间共享业务逻辑的通用代码,在必要时也可以编写特定于平台的代码。所以,KMM只负责跨平台下的业务逻辑部分。...但是,其实这种观点是不正确的,很多业务逻辑比如日志系统、埋点等业务使用KMM还是非常有利的。 后来Compose Multiplatform的出现弥足了KMM的短板。...社区对KMM的支持 目前官方许多库都已经支持了跨平台,比如我们刚刚使用的网络请求框架Ktor、依赖注入Koin还有序列化组件等。...所以我们我们现在如果想使用Kotlin全平台有两种方式: 使用IDEA创建项目,添加KMM依赖配置 使用Andrioid Studio创建项目,添加Compose Multiplatform的配置 使用官方提供的模板项目...中可以通过使用 UIKitView,在共享用户界面中嵌入复杂的特定于平台的小部件,如地图、 Web 视图、媒体播放器和照相机等。

    1.4K10

    Compose 跨平台现状

    KMM 时就可以实现各自平台的效果。...这里可以看下 ComposePlugin 插件的 RedirectAndroidVariants 类,在 Android 项目编译的时候,会将 jb-compose 依赖替换成 jetpack-compose...当我打开 README 时发现,咋被耍猴了: 开发跨平台应用还需要注意哪些? 既然目前可以支持 Android 和 Desktop,那么,我们在开发界面时需要注意哪些呢?...来实现组件路由,但该组件 jb 并没有移植到 jb-compose 中,所以,无法在两个平台上实现复用,好在浏览 jb-compose 项目的 issue 时找到了一个可替代的方案 Decompose...-8 即可: 资源设置可以查看我的项目:KMPCompose[7] desktop 多语言设置:java中如何实现多语言切换[8] 总结 在整个调研和使用下来,感觉 Compose 跨平台还有很长的路要走

    3.5K30

    干货 | 携程机票 App KMM 跨端生产实践

    KMM Module 工程集成与常规 Android Libraray Module 工程集成一脉相承,整理实践过程中遇到的若干常见问题: 1)在设置 KMM 工程的 target Java 版本时,尽量与需要集成的主工程保持一致...当 KMM Module 仅包含 Koltin 代码,或者所依赖的 iOS ObjC 库文件是单指令集格式时,官方 fat-framework 方案可以正确构建。...但是当所依赖的 iOS ObjC 库文件是多指令集格式时,官方方案就会报错异常。因此我们屏蔽了官方方案 Task,使用自定义指令集合并 Task 实现。...3)我们在 Kotlin/Native 上也无法自己编写基于池化技术的协程调度器,因为它可能会因为挂起时与恢复时所在线程不同而 crash。...首先,在 KMM 工程中,所有的协程只能在主线程开启;其次,在执行需要后台线程执行的任务时,通过专门编写的高阶函数 API 来执行;最后,所有的可变状态(通常是成员变量)必须在主线程更新值。

    3.7K10

    LNK2001: 无法解析的外部符号的几种情况

    一般来说,我们引用第三方库时,需要进行指定依赖项配置,若没有进行相关配置,则编译器会出现“LNK2001: 无法解析的外部符号”错误。...这个是最常见的问题,具体步骤: 项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项 项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项 若已经按照上述步骤进行配置...平台 ”配置,而另外一个项目采用“wind64平台 ”编译配置 3.没有添加指定预编译宏 在使用curl静态库时,却遇到了编译链接错误: 1>testcurl.obj : error LNK2001:...1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_cleanup 解决方法是,在自己的项目属性中添加一个预编译宏...,CURL_STATICLIB, 为了避免遇到以上问题建议: 1、引用第三方库时,确认lib库是否使用相同编译平台 2、确认编译选项是否一致。

    8.9K20

    前端打包工具Mako架构解析|得物技术

    在核心打包逻辑中使用Rust,并在Node.js中使用piscina来并行编译文件。在基准测试中,Mako比其他 Rust打包工具和Webpack更快。...热模块替换当文件更改时,Mako将自动更新浏览器中的代码。无需手动刷新页面。Mako已集成React快速刷新,当你更改React组件时,它只会更新组件,而不是整个页面。...通过napi将Mako核心逻辑的Rust代码,经过胶水层,在github workflows中进行交叉编译,编译出多平台的native模块,然后在npm模块中进行引用,再次进行一层封装供用户使用。...有个很有意思的事情是我看到代码中有使用oxc_resolver,一开始有点好奇,以为是什么黑科技,因为oxc和swc是同类型的工具,一般不会出现在同一个项目中。...如果你的项目严重依赖于 Webpack 的社区加载器和插件,你不应该使用 Mako,Rspack 是更好的选择。一家之言,还请各位指正。

    20010

    别具特色的跨平台移动开发 - Kotlin Multiplatform Mobile

    想要在缺少原生开发能力的前提下,纯粹依赖与使用React Native,是一件比较有挑战的事。...而且使用Flutter你可以真正抛弃原生开发,因为它完全不依赖原生的技术与控件。...KMM的实现思路是重用业务。 在Android中开发业务实现,KMM会将你的业务生成iOS类库。你在iOS开发的时候,相当于依赖了一个类库,这个类库提供了本身你业务的很多方法。...在业务重用过程中,数据库SQLite与网络都是支持的,也就是你的业务实现可以使用数据存储查询以及网络等。 而数据存储与网络其实是移动开发中极为重要的两个关键依赖。...而KMM也是我关注的一个移动开发技术方向,因为它一方面重用了业务,另一方面又维持了原生开发,似乎是个挺不错的实现思路。 最近五一假期时,基于KMM做了一个可运行的示例项目。

    1.7K20

    如何用c语言做个阅读器?

    编译libHaru这个开源库,需要其它的开源作为依赖,下面我们在Windows下编译libHaru。 1,下载zlib库,这个在官方网站上有最新的windows版本bin,不需要编译。...从工程中去掉依赖项(zlib,我们这里直接使用编译好的zlib,不需要编译),在设置从属性中的c++设置好头文件路径,和属性的连接设置好zlib的路径和库名字,编译动态库。...将Makefile.msvc_dll中的zlib和libpng指向目录和库名修改正确,在命令行下执行: nmake -f script\Makefile.msvc_dll即可编译成功。...拷贝好库和头文件到使用的工程,包含头文件时如下: #define HPDF_DLL #include "hpdf.h" #pragma comment (lib, "libhpdf.lib") 这里必须定义...如果没有在工程中设置包含libhpdf.lib(属性设置或者使用#pragma comment (lib, "libhpdf.lib")),则会出现如下错误: font_demo.obj : error

    2K50

    Kotlin Multiplatform 实战记 | QCon

    1 为什么选择 Kotlin 跨平台? 我先介绍一下我们团队的情况,交代清楚我们技术选型的背景。...在日常开发中,会遇到以下几个问题: 基础模块逻辑相对复杂,多端研发成本高 双端逻辑代码膨胀,无法保证完全一致,问题排查难 逻辑代码穿插在各个模块中,现有跨端复用方案迁移成本高 这些问题可能很多存量 App...cinterop 是 Kotlin Native 支持的能力,KMM 工程的编译使用了 gradle 工具链,其中对 iOS 来说,我们使用了 Kotlin CocoaPods 插件。...) 3 Kotlin Multiplatform 在阿里巴巴的实践 1688 日志 我们在日志建设上使用了 Kotlin 收拢双端逻辑。...在开发维护搜索逻辑的时候,我们遇到过好几次由于双端逻辑不一致,出现问题很难排查的情况。为了追求双端逻辑强一致,我们把搜索筛选业务的请求策略、场景管理、筛选模型、埋点策略封装在了 Kotlin 中。

    1.7K10

    MSBuild的简单介绍与使用

    TargetOutputs" ItemName="AssembliesBuiltByChildProjects" /> 在构造工程中我们可以定义和使用变量...这里还需要强调一点的是,项目级元素(Property)可以在元素下定义,也可以在构造过程中作为外部参数传入,这是一个非常有用的特性,一般编译时选择配置项(Debug或者Release)就是利用这个特性实现的...我们都知道,在一个项目的生成过程中可能需要完成几项不同的任务(比如编译、单元测试、check-in到源代码控制服务器中等),其中每一项任务都可以用Target来表示。...当MSBuild引擎开始执行某项Target时(别忘了Project的DefaultTargets属性),会自动检测它所依赖的那些Target是否已经执行完成,从而避免因为某个生成环节缺失而导致整个生成过程发生意外...你可以通过Project的DefaultTargets属性指定MSBuild引擎从哪(几)个Target开始执行,也可以在调用MSBuild.exe时使用t开关来手动指定将要运行的Target,方法如下

    1.3K50

    开源|携程机票 App KMM 跨端 KV 存储库 MMKV-Kotlin

    2.1 安装与导入 对于 KMM 开发者,在 common source set 中导入 MMKV-Kotlin,在 Gradle 脚本(kts)中添加: dependencies {          ...2.2 初始化 MMKV 在使用前需要进行初始化,由于 MMKV-Android 强依赖于 Context 类型,因此 MMKV-Kotlin 的初始化 API 在两端有所区别,需要在 Android...Gradle 脚本中通过 CocoaPods 依赖 MMKV-iOS,在 iOS source set 中通过其 Objective-C API 完成对 MMKV 的调用。...MMKV-Kotlin 的总体设计见下图: 四、实现简介 在《携程机票 App KMM 跨端生产实践》(参考链接 1)一文的 2.2 小节中我们曾以 MMKV 作为 demo 来介绍 KMM 的...但考虑到 Kotlin/Native 在 iOS 单平台开发中好像并不存在实际使用场景和需求,因此 MMKV-Kotlin 的文档中并没有将这几个 klib 的依赖代码列出。

    1.8K20

    说说最近官方公布的 Kotlin 的动态

    为什么会这样呢?因为越往后,Kotlin 自身的体系越庞大,想要做点儿什么的复杂度可想而知的变高,自然版本节奏就没那么好把控了。 功能优先还是版本优先? 显然这个问题在不同的发展阶段是有不同的答案的。...其实这个特性现在也有办法来模拟,就是通过隐式 receiver 的方式来实现,但如果能够有专门的语法来支持的,应该还会有更会玩的用法出现。...也正是如此,Kotlin 协程的 Kotlin Native 版本迟迟没有正式推出多线程版本,在 iOS 上使用 Kotlin 协程目前还受制于所调用的 API 是否本身已经自己支持了异步以及回调的线程切换...至于依赖框架的问题,这恰恰也是 Kotlin 的生存哲学之一,Kotlin 游走于各个平台上,一向是以充分利用所在平台的优势为基础的。...再稍微提一下,KMM 插件尽管支持了很多功能,但对于 iOS 工程却仍然不能有效支持,这主要体现在对于 Swift、Objective-C 的代码无法高亮、调试等问题上,如果需要编辑 SwiftUI 或者其他使用

    1.3K30

    将 Mozilla 源码里的 winEmbed 工程移植到 VC

    编译之,你会发现 N 多错误…… (2)在 VC++ 目录中,include 里加入 源码根/dist/include,Library 里加入 源码根/dist/lib,bin 里加入 源码根/dist...此时的程序也可以在别的机子上运行,但是需要将 xulrunner.exe 及其依赖文件拷到别的机子上并注册 GRE。 程序运行示意图: ?...在自己编译的 xulrunner 环境下跑会产生下面两类错误,先忽略之让程序跑起来。(用官方提供的 xulrunner-sdk 里的程序来注册 GRE 并运行程序无报错) ? ?...为什么要添加预编译选项 XPCOM_GLUE 在原版的 winEmbed 目录下,有 makefile 文件,里面有DEFINES += -DXPCOM_GLUE这么一句。...为什么要添加引入库 xpcomglue.lib,为什么要有(4)步骤 在 winEmbed/makefile 文件里,有 LIBS = \ $(DEPTH)/profile/dirserviceprovider

    95810

    Android开发(第一行代码 第二版) 常见异常和解决办法(基于Android Studio)(一)

    即出现以下弹窗 ? 即可进行你需要的操作。 在网上出现的解决此问题的方法一般是在CMD中解决,但是会出现问题,如 ?...一定要保证模拟器没有启动的情况来这样使用,否则就会出现下面的情况, ?...如果取值为false,表示不迁移依赖包到androidx,但在使用依赖包中的内容时可能会出现问题,当然了,如果你的项目中没有使用任何三方依赖,那么,此项可以设置为false (2)在module的gradle...意思大概是说调用了一个空对象的不存在的方法,但是我的Button明明是存在的啊,为什么会这样呢?...如图,出现这样的提示信息即表明在活动间正常切换了,对APP的操作也可正常进行,如此便可以在不同活动中随意切换了。

    2.7K11
    领券