我目前正在Android Studio中创建一个使用JNA调用原生C++库的项目。
我按照下面的说明进行了操作:https://github.com/java-native-access/jna,
public interface CLibrary extends Library
{
//---libjnidispatch---
void printf(String format, Object... args);
}
...
CLibrary demo = (CLibrary) Native.loadLibrary("c", CLibrary.class);
demo.prinft("Hello JNA !");
...
它运行成功。
Hello JNA !
然后,我想用我自己的图书馆。
我以类似的方式加载它:
#include <stdio.h>
int somme(int a, int b)
return a+b;
gcc -c -Wall -Werror -fPIC foo.c
gcc -shared -o foo.so foo.o
package com.example.guest.essai2;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
import android.*;
import com.google.android.*;
public class MainActivity extends AppCompatActivity {
private GoogleApiClient client;
//--------------JNA----------------------
public interface Foo extends Library
{
//--foo----
int somme(int a, int b);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
System.setProperty("jna.library.path", "/home/guest/workspace/MyApplication/Essai2/app/src/main/jniLibs/x86_64/");
NativeLibrary.addSearchPath("foo", "/home/guest/workspace/MyApplication/Essai2/app/src/main/jniLibs/x86_64/");
Native.register(Foo.class,"foo");
Foo foo = (Foo) Native.loadLibrary("foo", Foo.class);
String msg = ""+foo.somme(2,3);
tv.setText(msg);
setContentView(tv);
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}
}
System.setProperty("jna.library.path", "/home/guest/workspace/MyApplication/Essai2/app/src/main/jniLibs/x86_64/");
NativeLibrary.addSearchPath("foo", "/home/guest/workspace/MyApplication/Essai2/app/src/main/jniLibs/x86_64/");
Native.register(Foo.class,"foo");
java.lang.UnsatisfiedLinkError: Unable to load library 'foo': Native library (android-x86-64/libfoo.so) not found in resource path (.)
提前非常感谢。
用于构建库的命令gcc-shared-o.so foo.o
将其编译为一个名为“.so”的文件,请尝试gcc-shared-o libfoo.so foo.o
。
我想做一个应用程序,使用谷歌翻译API。自从我添加了 我的构建中的依赖项。gradle我有个错误: 现在必须显式声明注释处理器。发现编译类路径上的以下依赖项包含注释处理器。请将它们添加到annotationProcessor配置中。-自动值-1.2。jar(com.google.auto.value:auto-value:1.2)或者,设置android。defaultConfig。javaCom
我有一个python应用程序要测试。此应用程序正在导入许多包,例如: 其中mypackage是我自己的包。 当我开始应用程序时,一切正常。然而,一旦我试图运行毒物测试它,我就会得到以下错误: 我知道tox无法安装mypackage依赖项,因为它不在pip中。您知道如何在此类应用程序上运行tox,或者如何使用tox安装自己的软件包吗? 我的tox.ini文件内容:
我如何像这样使用我的电子邮件example@domain.ph在phpmailer中。因为我总是有一个错误,即使我有一个正确的凭据。 2020-05-14 09:21:24服务器- 这是我的配置:
我试图在我自己的包中使用data.table包。MWE如下:
java-jar C:\users\rash\desktop\selenium\selenium jars\selenium-server-standalone-2.39.0.jar-port 4444-role hub-nodetimeout 600 对于上面的所有命令,它都给出了一个消息“无法访问jar文件”。
目前,我正试图使用JNA将非Java应用程序设置为焦点,我发现了以下代码。 我还将以下依赖项放入我的pom.xml,该项目是一个只有主文件的新项目。 这是我们的程序入口点: 理论上,在编译/运行时,程序应该只关注运行时打开的谷歌Chrome。 然而,Java给出了以下错误消息: 对于这个问题,我找到的唯一参考是使用JNA User32平台映射的NoSuchMethodError 这几乎是相同的错误