问题标签 [kotlin-multiplatform]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kotlin - 为什么 kotlin multiplatform 不执行和导出 iOS 框架?
我开始开发 kotlin 多平台,并开发了一个简单的库进行测试。我可以.jar
为 android 导出文件,但我不能.framework
为 iOS 导出文件。我查看了其他项目,但没有找到我的问题。
我Gradle
的 lib 脚本是:
kotlin - Kotlin 与 Objective-C 框架的多平台/原生互操作性
我正在尝试在多平台项目中从 Kotlin 调用 Swift/Objective-C 代码。调用平台代码没有问题。但是,当我尝试调用某个库(或框架,由于我不是 iOS 开发人员而不确定如何正确调用它)时,它会失败。文档指出,如果正确导出,可以调用 Objective-C 代码和 Swift:
Kotlin/Native 提供与 Objective-C 的双向互操作性。如果将 Objective-C 框架和库正确导入构建(默认导入系统框架),则可以在 Kotlin 代码中使用 Objective-C 框架和库。请参阅 Gradle 插件文档中的“使用 cinterop”。如果使用 @objc 将 Swift 库的 API 导出到 Objective-C,则可以在 Kotlin 代码中使用 Swift 库。尚不支持纯 Swift 模块。
但它没有说明如何正确导入它们。它仅指向描述旧版本 gradle 插件的 gradle插件描述。所以它对我不起作用。最后我想出了一些可能是导入Objective-C代码的方法:
构建运行没有失败,但它不导入任何东西。我究竟做错了什么?是否可以导入这样的库?
升级版:
在这里,cinterop
我找到了一个这样的使用工具示例:
看起来cinterop
工具应该/dist/bin/
在我的项目的文件夹中,但没有这样的文件夹。我在哪里获得cinterop
工具?
unit-testing - Kotlin-multiplatform:如何执行 iOS 单元测试
我正在为 Android 和 iOS 开发一个 Kotlin 多平台库。我想编写一些特定于平台的单元测试。对于共享代码和 Android,测试按预期运行,但不适用于 iOS。
build.gradle
在共享代码模块的文件下方。
模块的结构SharedCode
是:
添加到androidTest
和commonTest
文件夹中的测试确实按预期运行,但添加到文件夹中的测试iOSTest
没有运行。
但是,如果我替换该行并相应fromPreset(iOSTarget, 'iOS') { compilations.main.outputKinds('FRAMEWORK') }
地fromPreset(presets.macosX64, 'macos')
更新目录名称,则macosTest
文件夹中的测试会按预期运行。
为什么在构建 iOS 框架时无法运行 iOS 测试?关于我做错了什么或如何使它起作用的任何想法?:)
kotlin - Kotlin 本机互操作链接器找不到框架
我正在尝试在 Kotlin Multiplatform 项目中使用 cocoapods 框架。所以我
- 将框架添加到 Pods 文件。
- 运行 pod 安装。
- 创建的
.def
文件 - 在里面添加了
cinterop
配置build.gradle
./gradlew cinteropFirebaseIos
成功运行。它生成.klib
,所以我可以看到 kotlin 代码中的类。但是当我尝试运行 iOS 应用程序构建失败并显示消息:
显示最近的消息
> 任务:app:linkDebugFrameworkIos
ld:找不到框架 FirebaseDatabase
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld 调用报错
这是我的配置build.gradle
这是我的.def
文件:
我怎样才能找出问题所在?我错过了.def
文件中的某些内容吗?在build.gradle
?
kotlin - 如何在 Kotlin Native 中使用 Http Request 库
我是 Kotlin 本机的初学者,我的目标是构建一个我们的 Rest API 包含它的库,并在 iOS 和 Android 上使用它。我知道ktor
并在我的项目中实现了这一点,但是当我build
通过Gradle
获取异常运行项目时,我使用以下对象kotr
:
和我Gradle
的多平台模块:
kotlin - Kotlin 多平台预期注释返回带有 neo4j 实际类型别名的“此类没有构造函数”
我有一个带有模态类 User 的多平台项目。
用户.kt
我也有预期和实际的注释
Annotation.kt [通用模块]
此外,我有他们的实际实施
Annotation.kt [JVM 模块]
然后我返回并注释了我的 User.kt
但是当我编译它时,我得到了这个错误
我究竟做错了什么?
注意:B。尝试完成
- 使预期的注释具有构造函数[不成功]
- 使预期注释与构造函数匹配 [错误:参数“{0}”在预期和实际注释中的值冲突]
仅供参考:我的 build.gradle 已经有了 noArg,因此 User.kt 类是使用无参数公共构造函数编译的
url - 如何在 Kotlin/Native 中使用 URL
我想在我的常用 Kotlin/Native 模块中从 Internet 加载一些东西。
我在这里搜索了一些示例,但没有找到任何相关的 URL。我知道 Kotlin/Native 只支持几个类似ktor, kotlinx.io, kotlinx.serialization
的库。
那么有没有办法使用给定的多平台库从互联网上下载任何东西,比如图像,也许我错过了什么?
ios - 链接 iOS 框架时无法在 Kotlin Multiplatform 中运行“linkDebugFrameworkIos”
我正在尝试将 iOS .framework 链接到 Kotlin Multiplatform/Native,以便我可以在 Kotlin 中使用它。我成功地将框架链接到 Kotlin Multiplatform/Native,并且正确的包包含我链接的标头。
但是Undefined symbols for architecture
,每当我尝试构建项目时都会发生。
iosX64
我已经尝试在预设和 iPhone预设上为 iPhone 模拟器编译到不同的架构iosArm64
。
我尝试将 .framework 本身添加到 vanilla XCode 项目中,它在模拟器和 iPhone 上运行良好。
这是.def
文件
这是build.gradle
文件的一部分
这是我尝试在 XCode 中构建或运行时弹出的错误消息./gradlew linkDebugFrameworkIos
android - Kotlin Native 在 Swift 上没有得到 Http 响应
我在我们的项目中使用 Kotlin 本机,我为 https 方法创建了一个本机类,用于从库中获取响应REST API
,我在层ktor
上实现了我的代码,我在&中使用它,在所有事情上都可以并获得响应,但不要在没有得到任何响应时收到任何响应。我确实尝试并通过使用第一种方式和第二种方式的 2 种差异模式来实现,但没有一种方式不起作用Common
Android
iOS
Android
iOS
Exception
observer
closure
iOS
我的问题在哪里?
在common
:
使用时在iOS
项目上: