问题标签 [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.
javascript - 覆盖自定义对象的本机 JavaScript 函数名称是否安全?
在创建自定义对象时,给它提供覆盖本机 js 函数的方法(在我目前的情况下是“读取”、“写入”和“保存”)是否安全?
有问题的对象永远不必写入 DOM(或以其他方式使用它将丢失的函数);这些方法名称很理想,所以我很好奇,然后惊讶地发现很难找到一个明确的答案。下面的例子。谢谢。
javascript - 模拟什么原生对象不存在
情况如下:我检查了现有的类,例如:
我想强制返回 false 或 true ,我可以这样做吗?是的,我可以通过其他方式检查它,例如`
或者类似的东西,但我可以以某种方式删除这个对象或为“in”运算符模拟一些东西吗?
我检查规范和v8代码,有'in'运算符只是调用'HasProperty'运算符,它在c ++上实现。我知道'hack'伪造toString / valueOf方法:
可能我可以以某种方式使用它吗?但是,当我发送字符串“Promise”时,我不能像这样伪造它......可能存在某种伪造“HasProperty”的方式?
java - Mockito 抛出 UnfinishedVerificationException (可能与本机方法调用有关)
运行测试用例时出现以下异常:
测试用例有两个测试,如下所示:
我的问题是双重的:
- 我不确定这里调用了什么:
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...它与反射和本机方法有关,但在我的情况下是哪种本机方法? - 我对 Mockito 的使用有什么问题?
编辑:
编辑 2:
我已经调试了测试并包含了屏幕截图,这似乎证实了 macias 所说的:
编辑3:要考虑的另一件事:如果我删除或注释掉测试中的最后一行和拆卸方法,即
和
测试通过没有问题......
编辑 4:我实际上正在拼命地尝试修改以下示例: https ://stackoverflow.com/a/24229350/536299在另一篇文章中给我。确实注意到模拟是自动装配的,并且测试确实使用了弹簧上下文。有人可以帮我做正确的测试吗?
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
如果声明为long
or ,我会收到类似的错误double
。但是,类似的 iOS API 可以正常工作。
如何在 Android 检查器中测试此方法?
编辑:我正在使用触发平台 v2.1.7(在撰写本文时最新)。
android - Android Matrix multiplyMM详解
我一直想知道是否有人对此有所了解
android.opengl.Matrix.multiplyMM
他们可以分享。
.
问的原因是,在通过OpenGL ES学习时,该方法被广泛用于各种计算。但是,我发现使用android.renderscript.Matrix4f比使用原始 float[] 数组更自然。问题是,Matrix4f 的乘法函数使用临时矩阵来执行操作,这导致内存效率低下。
解决这个问题的一种方法是创建我自己的Matrix4f并自己编写 multiply() 。我基于以下示例。它可能看起来很糟糕,但为我节省了所有 set()、get() 和循环,从而提高了性能。
但是,我仍然不想让multiplyMM离开。在源代码中,您可以读到该方法是native,因此应该更快地评估(是吗?)。这让我再次感到好奇。
.
因此,有谁知道:
- multiplyMM 的底层算法是什么?它使用临时工吗?
- 用起来会比自己写的乘法快吗?
c# - GetMouseMovePointsEx: Bounds / MOUSEMOVEPOINT in (mp_in) 问题
我正在尝试计算光标加速度/速度。
我读了 Find the velocity in C#并决定采纳 Hans 的使用建议GetMouseMovePointsEx
(pinvoke.net,MSDN)。
我做了一个演示程序来测试它(见下面的完整代码),但它有一个很大的限制。
一旦光标离开窗口,它就不会返回点。
事实上,如果执行不限于 MainWindow 内的点,该函数会返回 -1(win32Exception 1171,“传递给 GetMouseMovePoints 的点不在缓冲区中”)。
- 我怀疑这可能是因为我
Mouse.GetPosition()
用来提供mp_in
价值。
这可以通过使用GetCursorPos来解决吗?
myBounds.Contains(currentPosition)
当它应该为真时,移动或调整窗口大小会导致为假。
- 这可能是一个与我如何设置界限有关的愚蠢错误,但我并没有立即明白为什么会这样。它也可能连接到
Mouse.GetPosition()
. 不管是什么原因,我的比较不匹配。请帮忙?
它看起来像什么
主窗口.xaml
主窗口.xaml.cs
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,因为它太长了。
贴了很多赞,但没有给出解决方案,我尝试了很多,如果我得到了解决方案,我肯定会发布解决方案。
提前致谢。
android - System.loadLibrary 的深度限制?
我试图了解一个不满意的链接错误。这是我正在观察的问题。
我有一个名为libmynative.so
. libmynative.so
依赖于另一个名为 的原生 C++ 库libothernative.so
,而另一个原生依赖于 STLPort。所以我的loadLibrary
链看起来像:
由于不满意的链接错误,加载libothernative.so
失败,但缺少的符号由libstlport_shared.so
(已加载!)提供。
但是,如果libmynative.so
换libothernative.a
行(注意静态库),则loadLibrary
链看起来像:
然后一切顺利。我libmynative.so
仍然需要 提供的符号libstlport_shared.so
,但没有错误。
什么可以解释这种行为?System.loadLibrary
可以调用的数量是否有深度限制?
以下是没有答案的相关问题:
来自 Google NDK 用户组:
c# - 如何在 C# 中调用 WSAStartup()(在 Windows Phone 7 上)?
目标:获得一个 Windows Phone 7 名称(如“我的 Windows Phone”)。
以上代码以 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() 的可能性]
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!有没有更有效的方法?
提前致谢!