java - 使用 JNI 调用 NSWindow
问题描述
我尝试使用 JNI 从 Java 调用 Swift 函数。我的 Swift 函数使用一些内容创建 NSWindow,它可以工作,但是当我从 Java 调用它时,我收到下一条消息: “NSWindow 拖动区域应该只在主线程上无效!这将在未来引发异常”和我的应用程序崩溃
我的快捷功能:
@_silgen_name("swiftHelloWorld")
public func swiftHelloWorld() {
let delegate = AppDelegate()
let application = NSApplication.shared
application.setActivationPolicy(.regular)
application.delegate = delegate
application.run()
}
我的Java代码:
public class SwiftHelloWorld {
static {
System.loadLibrary("SwiftHelloWorld");
}
public static native void printHelloWorldImpl();
public static void main(final String[] args) {
printHelloWorldImpl();
}
}
我的 C 代码:
#include <jni.h>
#include <stdio.h>
#include "helloworld_SwiftHelloWorld.h"
#include "helloworld_SwiftHelloWorld_swift.h"
JNIEXPORT void JNICALL Java_helloworld_SwiftHelloWorld_printHelloWorldImpl (JNIEnv *env, jclass clazz) {
swiftHelloWorld();
printf("%s", "Hello World from JNI!");
}
斯威夫特标题:
void swiftHelloWorld();
解决方案
推荐阅读
- css - window.pageYOffset 不适用于“高度:100%”
- sql - 插入后用主键更新表列(在一个语句中)
- javascript - React-Redux:单击按钮后页面变为空白屏幕并且不出现组件
- javascript - 本地 Vue.js 或 Nuxt 内的 Restful API
- azure-devops - Azure 部署管道:将发布版本添加到配置
- python - 获取名称错误:未定义名称“IMGS”,以为我已在类中定义它
- node.js - 如何修复 Docker 中的 npm install 失败
- css - 从 ag-grid 单元格(文本选择)复制值在 chrome 中不起作用。- 角
- c# - 合并多个 EF.CompileQuery
- laravel - 使用 maddhatter/laravel-fullcalendar 从 laravel 5.8 到 7x 错误