问题标签 [djinni]

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 回答
577 浏览

windows - windows下编译Djinni出错

我正在尝试编译Dropbox的Djinni,在windows下使用cygwin试试: https ://github.com/dropbox/djinni

即使 sbt-launch.jar 在正确的文件夹下,是什么导致了这个错误。

我想首先在 cygwin 中制作 Djinni 以进行尝试,然后最终在 Windows 上制作它,那么如何去做呢,因为 github 中的说明主要针对 linux 用户。

0 投票
1 回答
943 浏览

cross-platform - Dropbox Djinni - 接口继承

有没有办法继承/扩展 Djinni 的 DSL 中的接口?

例如:

我想继承child1child2parent.

0 投票
0 回答
1417 浏览

android - 带有 Android NDK 的 Asio(非增强)

我想在我的项目中使用 non-boost asio ( http://think-async.com/ )。该项目是用 C++ 编写的,我使用 dropbox/djinni 生成 Android 和 iOS 的包装器。在本机 C++ 中,asio 在不包含 boost 的情况下可以正常工作。但我坚持在 Android 部分。

在 app/build.gradle 我添加了以下几行:

路径/到/asio 标头
cppFlags += "-DASIO_STANDALONE"

当我构建项目时,它给了我以下错误:

编译 src.cpp 失败。
taps-api\asio\asio\impl\src.cpp:21:3: 错误:#warning “此文件已弃用。” [-Werror=cpp]
# 警告“此文件已弃用。”
^
taps-api\asio\asio\impl\src.cpp:22:3: error: #warning "请#include <asio/impl/src.hpp> 代替。" [-Werror=cpp]
# 警告 "请改为 #include <asio/impl/src.hpp>。"
^ 在从 taps-api\asio\asio\impl\src.cpp:25:0 包含的文件中:
taps-api\asio/asio/impl/src.hpp:19:3:错误:#error 不要编译 Asio 库定义了 ASIO_HEADER_ONLY 的源
# 错误 不要编译定义了 ASIO_HEADER_ONLY 的 Asio 库源

有谁知道该怎么做/添加?另外我想问一下,我可以避免在我的项目中(在 android/ios 中)包含 boost headers/libs 吗?

我正在使用稳定的 Android Studio 1.3。我也发现了类似的问题,但这并不能解决我的问题。

0 投票
1 回答
4050 浏览

android - Android NDK 链接 OpenSSL

我想在我的 android ndk 项目中使用 openssl。

但是当我构建它时,我得到了这些错误:

错误:(38) 对SSL_library_init' Error:(39) undefined reference toSSL_load_error_strings 的未定义引用错误:(40) 对OPENSSL_add_all_algorithms_noconf' Error:(42) undefined reference toCRYPTO_num_locks 的未定义引用错误:(45) 对CRYPTO_set_locking_callback' Error:(46) undefined reference toCRYPTO_set_id_callback 的未定义引用等。

我在 Android.mk 中包含了两个文件(一个用于 ssl,一个用于加密):

我已将此添加到 app/build.gradle:

我正在使用 C++ 中的 openssl,并使用 dropbox/djinni 生成 jni 包装器。我也在使用 Android Studio 1.3 stable 和 gradle 2.5

编辑:我在应用程序中更改了我的 build.gradle:

它起作用了,但是应用程序崩溃了(因为它在 apk 的错误目录中搜索库...)。我还发现,最近在新的实验 gradle 中不支持这个“包括东西的第三方共享库”。所以我将不得不等待它。(我也可以尝试使用makefile,但默认它们被AS跳过)

0 投票
2 回答
353 浏览

libcurl - 如何在 Dropbox djinni 项目中链接 libcurl

我需要 libcurl 在 dropbox djinni mx3 项目中做一些事情;但是当我创建 libmx3_android.so 时显示此错误消息:“未定义对 'curl_easy_init' 的引用”......因为我无法将 libcurl.a 链接到该项目。

对于android jni,我找到一些解决方案可以解决它;那就是eidt Android.mk

但在这些项目中,.mk 文件将由 mx3.gyp 重新创建。如何编辑 mx3.gyp 以创建该 .mk 文件?

谢谢。

0 投票
1 回答
505 浏览

java - Dropbox Djinni - Java 接口与类扩展

有没有办法在 djinni 中定义一个 Java/Obj-C 接口,以便它可以在 Java 中实现而不是扩展。我遇到了多个扩展限制的问题。虽然有解决办法,但我想知道这是否可行。

widget_loader.djinni

PurpleWidget.java

0 投票
1 回答
275 浏览

c++ - 从后台线程错误修改自动布局引擎,来自 C++

通过双向 djinni 架构从 C++ 进行 UI 调用时,我在 Xcode 7.1 中收到以下错误:

This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes. This will cause an exception in a future release.

我可以使用此处给出的解决方案来解决 Objective-C 中的问题:

收到“此应用程序正在修改自动布局引擎”错误?

我的问题是,有没有一种方法可以在 C++ 中以某种方式完成此任务,而不必在每次调用 UI 时都在 Objective-C 中调用 dispatch_async?还是就 Xcode 而言,来自 C++ 的每个调用都被视为后台线程?


发布相关代码,省略自动生成的源文件,完整项目也可在github上找到:

cpptimer.djinni:

timer_impl.hpp

timer_impl.cpp

视图控制器.h

视图控制器.m

0 投票
1 回答
205 浏览

c++ - 找不到 -ljson11 的库,但找到了 -lsqlite 3

我正在尝试通过添加我想要包含 json11 C++ 库的内容来实现本教程。

我对两者都遵循了相同的过程,从: https ://github.com/libmx3/mx3 下载了 repo ,将它们添加到我项目的 /deps/ 文件夹中,然后运行 ​​GYP 为两者生成 .xcodeproj 文件。

然后我创建一个 C++ 项目,将这两个项目添加到工作区中,并在 Build Phases->Link binaries with libraries 下添加库。

当我点击运行时,构建失败ld: library not found for -ljson11

我已经尝试重新生成它们并将它们添加到主 xcodeproj 中。并进入目标依赖项。我已经仔细检查了图书馆项目,它们是相同的。我还在库搜索路径中添加了编译 .a 文件的文件夹,但这些都没有影响。如果我删除项目编译的 json11 依赖项,但我不明白为什么找到 sqlite3 并且没有抛出错误,但相同的 json11 项目将无法工作。

我可以在 Debug-build 文件夹中看到 .a 文件,如果我单独构建它们,则没有错误。

这是完整的构建日志

编辑:即使我将编译后的文件添加到项目中使它们变黑,它仍然抱怨找不到 ljson11 库。也许库的编译方式有问题?

0 投票
1 回答
155 浏览

android - Djinni:我可以将接口定义为在所有环境中都可以实现吗?

考虑 Djinni 的文档

它说:

此外,它还说:

无论如何,我的情况是,我有一个可以在客户端或 C++ 端定义的对象。
因此,我想使用如下语法:

它是有效的语法,djinni 支持的东西(它运行没有错误,但我不知道生成的代码是否也有效)还是我应该重新考虑的东西?

0 投票
1 回答
348 浏览

c++ - 如何为 djinni 定义 const getter?

我用djinni定义了一个 C++ 接口:

我继承的实现使用 const getter,即

const由于属性,这显然无法编译。我也可以教djinni使用 const getter 生成基本接口吗?