标签: native-methods

如何从默认包导入类

可能重复:如何访问default-package中的java-classes?


我正在使用Eclipse 3.5,我创建了一个包含一些包结构和默认包的项目.我在默认包中有一个类 - Calculations.java,我想在任何一个包中使用该类(例如in com.company.calc).当我尝试使用默认包中的类时,它给了我一个编译器错误.它无法识别默认包中的类.问题出在哪儿?

Calculations.java - 源代码

public class Calculations {
    native public int Calculate(int contextId);
    native public double GetProgress(int contextId);
    static  {
        System.loadLibrary("Calc");
    }
}
Run Code Online (Sandbox Code Playgroud)

我不能把我的班级放在任何其他包中.这个类有一些在Delphi中实现的本机方法.如果我将该类放在任何文件夹中,我将不得不对我想要避免的DLL进行更改(实际上 - 我不能).这就是为什么我把我的类放在默认包中.

java java-native-interface native-methods default-package

90
推荐指数
5
解决办法
14万
查看次数

为document.querySelectorAll创建一个简短的别名

我将运行document.querySelectorAll()很多,并且想要一个简写别名.

var queryAll = document.querySelectorAll

queryAll('body')
TypeError: Illegal invocation
Run Code Online (Sandbox Code Playgroud)

不行.鉴于:

document.querySelectorAll('body')
Run Code Online (Sandbox Code Playgroud)

仍然.如何使别名起作用?

javascript native-methods

47
推荐指数
6
解决办法
1万
查看次数

NativeMethods类是否在.NET中专门处理?

https://msdn.microsoft.com/en-us/library/ms182161.aspx

此分页中描述的三个类是否在.NET Framework中专门处理?(NativeMethods,SafeNativeMethods和UnsafeNativeMethods)

我问的原因是我想知道是否可以创建NativeMethods类的类别.例如:

ComNativeMethods
User32NativeMethods
OleStorageNativeMethods
Run Code Online (Sandbox Code Playgroud)

.net c# pinvoke native-methods

10
推荐指数
1
解决办法
9595
查看次数

android mupdf libmupdf.so运行时错误"找不到本机openFile的实现"

我刚从mac上的mupdf.com编译mupdf.花了一些时间搞清楚,但现在我的libs/armeabi文件夹中有一个libmupdf.so.

他们提供了一个名为MuPDFCore.java的类的示例,可以在这里查看:http://mupdf.com/repos/mupdf/android/src/com/artifex/mupdf/MuPDFCore.java

我在我的项目中使用了这个类,它在LogCat中说了以下内容:

试图加载lib /data/data/com.myapp.android/lib/libmupdf.so 0x4070e050

添加了共享库/data/data/com.myapp.android/lib/libmupdf.so 0x4070e050

在/data/data/com.myapp.android/lib/libmupdf.so 0x4070e050中找不到JNI_OnLoad,跳过init

找不到本机Lcom/myapp/android/viewer/MuPDFCore; .openFile(Ljava/lang/String;)I的实现

DEBUG/AndroidRuntime(27523):关闭VM

WARN/dalvikvm(27523):threadid = 1:线程退出,未捕获异常(组= 0x400ee760)

错误/ AndroidRuntime(27523):致命异常:主要

ERROR/AndroidRuntime(27523):java.lang.UnsatisfiedLinkError:openFile

据我所知库正在加载,在我弄清楚如何编译库之前,它一直在崩溃,并说"mupdf"是一个空链接.

他们的例子几乎说openFile是一个原生函数......就在我想到这个问题时,另一个问题就出现了.我整天都在努力.任何输入都会很棒!

这是一个糟糕的编译吗?我在终端没有收到任何错误.

java-native-interface android native-methods libs android-ndk

10
推荐指数
3
解决办法
5150
查看次数

Mockito - 使用本机方法模拟类

我有简单的测试用例:

@Test
public void test() throws Exception{
       TableElement table = mock(TableElement.class);
       table.insertRow(0);
}
Run Code Online (Sandbox Code Playgroud)

其中TableElement是GWT类,其方法insertRow定义为:

public final native TableRowElement insertRow(int index);
Run Code Online (Sandbox Code Playgroud)

当我开始测试时,我得到:

java.lang.UnsatisfiedLinkError: com.google.gwt.dom.client.TableElement.insertRow(I)Lcom/google/gwt/dom/client/TableRowElement;
    at com.google.gwt.dom.client.TableElement.insertRow(Native Method)
Run Code Online (Sandbox Code Playgroud)

我相信哪个与insertRow方法有关.有没有办法或解决方法来模拟Mockito的这些方法?

java gwt native-methods mockito

10
推荐指数
1
解决办法
5811
查看次数

是否可以在Android/dalvik中覆盖Java类中的本机方法?

TestMe使用EasyMock 对一个类进行单元测试,并且其中一个方法(比如说method(N n))期望一个N具有本机方法的类型的参数(比方说nativeMethod()).

class TestMe {
    void method(N n) {
        // Do stuff

        n.nativeMethod();

        // Do more stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

method()需要N.nativeMethod()在某个时候调用,而我遇到的问题是我的N的Easymock模拟对象无法覆盖本机方法.我不拥有N级,但我可以TestMe以任何必要的方式进行重构.

我决定创建自己的课程FakeN extends N,这个课程无效nativeMethod:

class FakeN extends N {
    FakeN(int pointer) {
        super(pointer);
    }

    @Override
    public void nativeMethod(Object o) {
        // super.nativeMethod() is an actual native method defined as:
        // public native void nativeMethod(Object o)
        //
        // IGNORE
    }
}
Run Code Online (Sandbox Code Playgroud)

但是虽然编译器没有抱怨,但是当我运行测试时,它似乎N.nativeMethod()是被调用的而不是 …

java android overriding native-methods easymock

9
推荐指数
1
解决办法
3469
查看次数

如何在不使用支持库的情况下实现水平滑动?

如果我不需要为旧版本的android授予支持并且只能使用API​​ 17,那么是否有另一种方法来实现广告宣传的水平滑动(如在gmail中)而不使用viewpager,fragmentactivities(新的API已经有片段. ..)等摆脱支持库?

我发现横向滑动的所有教程都展示了如何使用支持库和FragmentActivities来完成它.否则,如果我不能使用他们的本机类和方法,新API的优势是什么?

android native-methods fragment android-viewpager android-support-library

9
推荐指数
1
解决办法
2340
查看次数

Android Matrix multiplyMM详细介绍

我一直想知道是否有人知道

android.opengl.Matrix.multiplyMM

他们可以分享.

.

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

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

但是,我仍然不想让乘法器去.在源代码中,您可以读到该方法是原生的,因此应该更快地评估(是吗?).这让我再次怀疑.

.

因此,有谁知道:

  1. multiplyMM的基础算法是什么?它是否使用临时工具?
  2. 使用比自写多次更快吗?

android native-methods opengl-es matrix

8
推荐指数
1
解决办法
3707
查看次数

针对querySelector检查元素?(使用本机方法,而不是JQuery)

我有一个元素.我想检查它是否符合特定查询,例如('.someclass')与querySelector的样式相同.

这并不像听起来那么容易.Element.querySelectorAllElement.querySelector仅适用于相关元素的后代.不是元素本身.

var p = document.querySelector('p')
Run Code Online (Sandbox Code Playgroud)

注意:上面的行仅用于说明目的.在现实生活中,我实际上通过其他方式找到了元素.

p.querySelector('p')
Run Code Online (Sandbox Code Playgroud)

退货null.因为querySelector仅对后代运行.

我可以:

p.parentNode.querySelector('.someclass')
Run Code Online (Sandbox Code Playgroud)

但是这将返回元素父元素的第一个子元素,它可能是一个不同的元素.例如,如果'p'是父级的第二个子级,则此代码将失败.

如何检查元素本身是否符合查询?

javascript native-methods

7
推荐指数
1
解决办法
3140
查看次数

jsdom - document.querySelector已启用,但文档中缺少

我想使用JSDom执行一些服务器方面的DOM操作.但是,尽管explcitly启用了querySelector,但在创建的文档中未定义:

var jsdom = require('jsdom');

// Yep, we've got QuerySelector turned on
jsdom.defaultDocumentFeatures = {
  QuerySelector: true
};

var dom = jsdom.defaultLevel;

var document = jsdom.jsdom("<html><body><h1>Hello StackOverflow</h1></body></html>"),
window = document.createWindow();
Run Code Online (Sandbox Code Playgroud)

然而:

console.log(document.querySelector)
Run Code Online (Sandbox Code Playgroud)

返回

undefined
Run Code Online (Sandbox Code Playgroud)

如何使用jsdom使document.querySelector正常工作?

native-methods node.js jsdom

7
推荐指数
2
解决办法
7073
查看次数