问题标签 [kotlin-native]

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.

0 投票
2 回答
1854 浏览

kotlin - 为什么 kotlin multiplatform 不执行和导出 iOS 框架?

我开始开发 kotlin 多平台,并开发了一个简单的库进行测试。我可以.jar为 android 导出文件,但我不能.framework为 iOS 导出文件。我查看了其他项目,但没有找到我的问题。

Gradle的 lib 脚本是:

0 投票
2 回答
2193 浏览

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工具?

0 投票
3 回答
2399 浏览

unit-testing - Kotlin-multiplatform:如何执行 iOS 单元测试

我正在为 Android 和 iOS 开发一个 Kotlin 多平台库。我想编写一些特定于平台的单元测试。对于共享代码和 Android,测试按预期运行,但不适用于 iOS。

build.gradle在共享代码模块的文件下方。

模块的结构SharedCode是:

添加到androidTestcommonTest文件夹中的测试确实按预期运行,但添加到文件夹中的测试iOSTest没有运行。

但是,如果我替换该行并相应fromPreset(iOSTarget, 'iOS') { compilations.main.outputKinds('FRAMEWORK') }fromPreset(presets.macosX64, 'macos')更新目录名称,则macosTest文件夹中的测试会按预期运行。

为什么在构建 iOS 框架时无法运行 iOS 测试?关于我做错了什么或如何使它起作用的任何想法?:)

0 投票
1 回答
1625 浏览

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?

0 投票
1 回答
1364 浏览

kotlin - 如何在 Kotlin Native 中使用 Http Request 库

我是 Kotlin 本机的初学者,我的目标是构建一个我们的 Rest API 包含它的库,并在 iOS 和 Android 上使用它。我知道ktor并在我的项目中实现了这一点,但是当我build通过Gradle获取异常运行项目时,我使用以下对象kotr

和我Gradle的多平台模块:

0 投票
1 回答
831 浏览

c++ - 如何添加 MinGW Kotlin Native 依赖项

我正在尝试创建一个能够与 AWS IoT 服务通信的小型应用程序。因为我希望它相当小并且我想尝试一些新的东西,所以我决定选择 Kotlin Native。我很快注意到 AWS 发布了他们的 C++ 库,可以让您轻松连接到 AWS IoT 服务 ( https://github.com/aws/aws-iot-device-sdk-cpp/tree/release ) 我下载了它并甚至设法用 MinGW 编译(是的,我在 Windows 上)。我注意到它生成了一堆 *.o 文件。我认为现在是将其导入我的 Kotlin Native 项目的合适时机。我的 build.gradle 文件现在看起来完全标准

出于某种原因,我找不到任何关于如何添加我新编译的依赖项的示例。通常,当您编写 C++ 代码时,您必须分别指定 Include 目录和 Lib 目录的路径。AFAIK 这不是 gradle 开箱即用的东西。那我该如何导入这个依赖呢?或者也许有一些集中的存储库我可以简单地从中提取这种依赖关系,就像现在仍在使用的几乎所有其他编程语言一样?至少这个特定的库似乎在 NuGet 上不可用:/

0 投票
3 回答
1288 浏览

javascript - 如何从 JavaScript 执行 Kotlin WebAssembly 函数?

我的目标是编写一个 Kotlin 库,将其编译为 WebAssembly 并从 JS 调用它的函数。几个小时后,我试图让一个简单的 hello world 工作。关于这个主题的文档要么不存在,要么隐藏得很好。

这是我的 kotlin 文件:

当我将它编译为 WebAssembly 时,我得到一个hello.wasmhello.wasm.js文件。

首先,我尝试使用类似这样的东西来执行该功能:

然后我明白我需要在importObject参数中传递来自我的hello.wasm.js文件的导入。所以我想我需要使用hello.wasm.js文件来正确初始化我的 wasm 程序。

当我像下面这样加载我的 wasm 时,我没有收到任何错误并且main()函数被执行。

但是如何从 JavaScript执行hello()函数呢?我发现的唯一 kotlin wasm 示例不是调用特定函数,而是从main()函数渲染某些内容。

此外,非常感谢任何指向相关文档的链接。


更新: 我设法执行了该功能,但我不相信这是正确的方法:

问题是,如果我这样做,我的 wasm 文件会被提取两次。

仅加载没有 wasm 属性的 hello.wasm.js 文件会出现以下错误:

0 投票
1 回答
1056 浏览

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

0 投票
0 回答
233 浏览

android - Kotlin Native 在 Swift 上没有得到 Http 响应

我在我们的项目中使用 Kotlin 本机,我为 https 方法创建了一个本机类,用于从库中获取响应REST API,我在层ktor上实现了我的代码,我在&中使用它,在所有事情上都可以并获得响应,但不要在没有得到任何响应时收到任何响应。我确实尝试并通过使用第一种方式和第二种方式的 2 种差异模式来实现,但没有一种方式不起作用CommonAndroidiOSAndroidiOSExceptionobserverclosureiOS

我的问题在哪里?

common

使用时在iOS项目上:

0 投票
2 回答
1397 浏览

ios - 构建 iOS 框架时未找到 Ktor 和 kotlinx 依赖项

我试图在我的 Kotlin/Native 项目中包含对和ktorkotlinx准确地说)的支持。所有库都可以在项目的 Android 版本上运行,但是当我尝试编译 Xcode 项目时,我收到错误,指出无法找到和库:serializationcoroutineskotlinx.serializationkotlinx.coroutines

这是我的项目的 gradle 文件:

任何帮助将不胜感激,谢谢!