问题标签 [native-methods]

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

javascript - 覆盖自定义对象的本机 JavaScript 函数名称是否安全?

在创建自定义对象时,给它提供覆盖本机 js 函数的方法(在我目前的情况下是“读取”、“写入”和“保存”)是否安全?

有问题的对象永远不必写入 DOM(或以其他方式使用它将丢失的函数);这些方法名称很理想,所以我很好奇,然后惊讶地发现很难找到一个明确的答案。下面的例子。谢谢。

0 投票
0 回答
62 浏览

javascript - 模拟什么原生对象不存在

情况如下:我检查了现有的类,例如:

我想强制返回 false 或 true ,我可以这样做吗?是的,我可以通过其他方式检查它,例如`

或者类似的东西,但我可以以某种方式删除这个对象或为“in”运算符模拟一些东西吗?

我检查规范和v8代码,有'in'运算符只是调用'HasProperty'运算符,它在c ++上实现。我知道'hack'伪造toString / valueOf方法:

可能我可以以某种方式使用它吗?但是,当我发送字符串“Promise”时,我不能像这样伪造它......可能存在某种伪造“HasProperty”的方式?

0 投票
1 回答
7395 浏览

java - Mockito 抛出 UnfinishedVerificationException (可能与本机方法调用有关)

运行测试用例时出现以下异常:

测试用例有两个测试,如下所示:

我的问题是双重的:

  • 我不确定这里调用了什么:sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)...它与反射和本机方法有关,但在我的情况下是哪种本机方法?
  • 我对 Mockito 的使用有什么问题?

编辑

编辑 2

我已经调试了测试并包含了屏幕截图,这似乎证实了 macias 所说的:

调试输出

编辑3:要考虑的另一件事:如果我删除或注释掉测试中的最后一行和拆卸方法,即

测试通过没有问题......

编辑 4:我实际上正在拼命地尝试修改以下示例: https ://stackoverflow.com/a/24229350/536299在另一篇文章中给我。确实注意到模拟是自动装配的,并且测试确实使用了弹簧上下文。有人可以帮我做正确的测试吗?

0 投票
3 回答
73 浏览

parameters - 如何使用 int 参数测试 Trigger.io Android 本机模块 API?

我正在为 Trigger.io 编写本机 Android 模块。该方法在 API.java 中定义。

当我运行检查器并5在文本框中输入 时bar,我看到以下输出。

Called "test_test.foo" with "{"bar":"5"}"

Error for "test_test.foo" with "{"message":"Parameter 'bar' was of the wrong type, expected an int","type":"UNEXPECTED_FAILURE","subtype":null}"

bar如果声明为longor ,我会收到类似的错误double。但是,类似的 iOS API 可以正常工作。

如何在 Android 检查器中测试此方法?

编辑:我正在使用触发平台 v2.1.7(在撰写本文时最新)。

0 投票
1 回答
4429 浏览

android - Android Matrix multiplyMM详解

我一直想知道是否有人对此有所了解

android.opengl.Matrix.multiplyMM

他们可以分享。

.

问的原因是,在通过OpenGL ES学习时,该方法被广泛用于各种计算。但是,我发现使用android.renderscript.Matrix4f比使用原始 float[] 数组更自然。问题是,Matrix4f 的乘法函数使用临时矩阵来执行操作,这导致内存效率低下。

解决这个问题的一种方法是创建我自己的Matrix4f并自己编写 multiply() 。我基于以下示例。它可能看起来很糟糕,但为我节省了所有 set()、get() 和循环,从而提高了性能。

但是,我仍然不想让multiplyMM离开。在源代码中,您可以读到该方法是native,因此应该更快地评估(是吗?)。这让我再次感到好奇。

.

因此,有谁知道:

  1. multiplyMM 的底层算法是什么?它使用临时工吗?
  2. 用起来会比自己写的乘法快吗?
0 投票
0 回答
592 浏览

c# - GetMouseMovePointsEx: Bounds / MOUSEMOVEPOINT in (mp_in) 问题

我正在尝试计算光标加速度/速度。

我读了 Find the velocity in C#并决定采纳 Hans 的使用建议GetMouseMovePointsExpinvoke.netMSDN)。

我做了一个演示程序来测试它(见下面的完整代码),但它有一个很大的限制。

一旦光标离开窗口,它就不会返回点。
事实上,如果执行不限于 MainWindow 内的点,该函数会返回 -1(win32Exception 1171,“传递给 GetMouseMovePoints 的点不在缓冲区中”)。

  • 我怀疑这可能是因为我Mouse.GetPosition()用来提供mp_in价值。
    这可以通过使用GetCursorPos来解决吗?

myBounds.Contains(currentPosition)当它应该为真时,移动或调整窗口大小会导致为假。

  • 这可能是一个与我如何设置界限有关的愚蠢错误,但我并没有立即明白为什么会这样。它也可能连接到Mouse.GetPosition(). 不管是什么原因,我的比较不匹配。请帮忙?

它看起来像什么

主窗口.xaml

主窗口.xaml.cs

0 投票
2 回答
5538 浏览

android - java.lang.UnsatisfiedLinkError:未找到本机方法:org.cocos2dx.lib.Cocos2dxHelper.nativeSetApkPath:

编辑-2

终于修复了错误,请参阅下面的答案。

编辑-1

现在创建了一个新项目并将其导入 adt
并从 property->android->library 添加 src,
因为我添加了库它的编译,现在创建了 libcocos2dcpp.so 文件

并将其添加到 myapp.java 文件中

运行它并将其安装在模拟器上,给出相同的错误


我正在使用 cocos2d-2.0-x-2.0.3
NDK -- android-ndk-r9d
ANDROID SDK -- android-19 使用 MAC OS -- 版本 10.9.4

通过导入项目将我的项目添加到 adt。

编辑 build_native.sh 并添加

在文件的开头。

我的 Android.mk 文件是

添加cocos2dx库属性->java构建路径->链接源->src

在 myApp.java 文件中添加此代码以加载 libgame.so 文件

在清单文件中添加了此代码

这是我的应用程序包的屏幕截图

在此处输入图像描述

它在 genymotion 模拟器和 android 设备错误消息弹出窗口上成功运行

LogCat 中的错误是

我的问题是 libgame.so 文件是如何生成的?

libs我的文件夹中没有生成名为 libgame.so 的文件

它在 iOS 中运行良好。

我曾尝试在 cocos2dx 2.2.2 中创建新应用程序,它的工作完美,但我的应用程序在 cocos2d-2.0-x-2.0.3 中,我无法将整个代码转换为 cocos2dx 2.2.2,因为它太长了。

贴了很多赞,但没有给出解决方案,我尝试了很多,如果我得到了解决方案,我肯定会发布解决方案。

提前致谢。

0 投票
1 回答
161 浏览

android - System.loadLibrary 的深度限制?

我试图了解一个不满意的链接错误。这是我正在观察的问题。

我有一个名为libmynative.so. libmynative.so依赖于另一个名为 的原生 C++ 库libothernative.so,而另一个原生依赖于 STLPort。所以我的loadLibrary链看起来像:

由于不满意的链接错误,加载libothernative.so失败,但缺少的符号由libstlport_shared.so(已加载!)提供。

但是,如果libmynative.solibothernative.a行(注意静态库),则loadLibrary链看起来像:

然后一切顺利。我libmynative.so仍然需要 提供的符号libstlport_shared.so,但没有错误。

什么可以解释这种行为?System.loadLibrary可以调用的数量是否有深度限制?


以下是没有答案的相关问题:

来自 Google NDK 用户组:

0 投票
2 回答
2099 浏览

c# - 如何在 C# 中调用 WSAStartup()(在 Windows Phone 7 上)?

目标:获得一个 Windows Phone 7 名称(如“我的 Windows Phone”)。

铅:http: //blogs.msdn.com/b/andypennell/archive/2013/11/09/getting-the-name-of-your-windows-phone-8-device.aspx

以上代码以 C++ 形式提供,我想将其更改为 C#。一个原因是因为我只有 Visual Studio 2012 Express,它不允许我将 C++ 与 Windows Phone 项目一起使用,而且我已经购买了 VS2013,为此买不起 VS2012。另一个原因是 C++ 中有超过 150 个依赖文件,代码太多了!

所以,我的第一次尝试:(灵感来自http://www.experts-exchange.com/Programming/Languages/.NET/Q_21014265.html

它失败并WSAStartup(0x0002, out dummy);出现异常:

MyLibrary.dll 中出现了“System.MethodAccessException”类型的第一次机会异常

附加信息:尝试访问该方法失败:MyLibrary.WSAStartup(System.Int16, .WSAData&)

我的第二次尝试:(灵感来自Convert service name to port

它失败并NativeMethods.WSAStartup(0x0202, ref dummy);出现异常:

MyLibrary.dll 中出现了“System.MethodAccessException”类型的第一次机会异常

附加信息:尝试访问方法失败:MyLibrary+NativeMethods.WSAStartup(System.Int16, .WSAData&)

有什么建议可以让它在 WP7 设备上运行吗?

[编辑:这篇文章还建议版本 0x0101 使用 WSAStartup() 的可能性]

0 投票
0 回答
539 浏览

java - JNI:如何在 JNI/C++ 端将 jdoubleArray 类作为“jclass”?

我编写了一个本机Java 函数,它传递一个 2D 数组。Java 端的“double [][]”在 JNI/C++ 端变成了“jobjectArray”。所以我需要使用GetObjectArrayElement()来访问“外部”数组的元素,并且这些元素(即“内部”数组)应该jdoubleArray类型。但是我从GetObjectArrayElement()函数中将它们作为作业类型。现在,如何使用IsInstanceOf ()函数检查jobject是否实际上是jdoubleArray

我显然需要一个代表jobjectArray类的jclass 。但是怎么做呢?我知道我需要将什么字符串传递给jobjectArray类的FindClass显然,Java 端的jobjectArray没有等价物......到目前为止,我想出的唯一方法是:

这需要每次都创建一个虚拟的 DoubleArray!有没有更有效的方法?

提前致谢!