android emulator没有';找不到图书馆

android emulator没有';找不到图书馆,android,exception,android-emulator,Android,Exception,Android Emulator,我试图运行一个应用程序,但我得到一个奇怪的结果: 该应用程序使用了一个库项目,我已通过以下方式将其加载到MainActivity中: static{ System.loadLibrary("freerdp-android"); } 现在,如果我用智能手机启动应用程序,就不会有问题,而如果我用模拟器启动应用程序,我会得到以下结果: 08-27 20:10:51.637: E/AndroidRuntime(388): FATAL EXCEPTION: main 08-27 20:10:

我试图运行一个应用程序,但我得到一个奇怪的结果: 该应用程序使用了一个库项目,我已通过以下方式将其加载到MainActivity中:

static{    
 System.loadLibrary("freerdp-android");
 }
现在,如果我用智能手机启动应用程序,就不会有问题,而如果我用模拟器启动应用程序,我会得到以下结果:

08-27 20:10:51.637: E/AndroidRuntime(388): FATAL EXCEPTION: main
08-27 20:10:51.637: E/AndroidRuntime(388): java.lang.ExceptionInInitializerError
08-27 20:10:51.637: E/AndroidRuntime(388):  at java.lang.Class.newInstanceImpl(Native Method)
08-27 20:10:51.637: E/AndroidRuntime(388):  at java.lang.Class.newInstance(Class.java:1424)
08-27 20:10:51.637: E/AndroidRuntime(388):  at android.app.Instrumentation.newActivity(Instrumentation.java:1022)
...
08-27 20:10:51.637: E/AndroidRuntime(388): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load freerdp-android: findLibrary returned null
08-27 20:10:51.637: E/AndroidRuntime(388):  at java.lang.Runtime.loadLibrary(Runtime.java:425)
08-27 20:10:51.637: E/AndroidRuntime(388):  at java.lang.System.loadLibrary(System.java:554)
08-27 20:10:51.637: E/AndroidRuntime(388):  ... 15 more
为什么?首先是

System.loadLibrary("freerdp_android");
并回答了一个类似的问题:

在Java端,看起来您应该按如下方式加载其他库 嗯,按照适当的顺序:

static {
    System.loadLibrary("freerdp-utils");
    System.loadLibrary("freerdp-codec");
    System.loadLibrary("freerdp-gdi");
    System.loadLibrary("freerdp-core");
    System.loadLibrary("freerdp-rail");
    System.loadLibrary("freerdp-chche");
    System.loadLibrary("freerdp-crypto");
    System.loadLibrary("freerdp-sspi");
    System.loadLibrary("freerdp-channels");
    System.loadLibrary("rdpsnd_alsa");
    System.loadLibrary("cliprdr");
    System.loadLibrary("rdpsnd");
    System.loadLibrary("freerdp_android");
    System.loadLibrary("freerdp");
}

有些情况下,一些应用程序(使用play store库)由于依赖于其他应用程序(如play store应用程序)和其他一些原因,只能在谷歌默认的android emulator上以外的设备上运行


因此,请尝试使用新的android emulator,它比默认的emulator几乎没有更多的功能。

如果使用Gradle的
externalNativeBuild
,您必须将模拟设备ABI添加到
应用程序.mk
文件中的
APP_ABI
变量中,或者在Gradle中添加
Abilters

通常,您需要在列表中包含
x86
x86\u 64


请参见

为什么要尝试在代码中添加库项目,而不是通过构建系统?你是用ant还是用gradle构建的?我已经编译了库并将其添加到项目中。如果我转到properties->Android,它会出现在LibrarySo ant部分。我不明白你为什么要在你的源代码中包含这段代码。ant构建系统处理在构建路径中包含库项目的问题。如果我删除了这段代码,在启动时,我会得到一个在应用程序中调用的本机方法的UnsatifiedLink错误。genymotion也会给出此错误。有没有其他方法可以解决这个问题?我不确定这个问题,但我想我已经使用了
Galaxy Nexus-4.1.1-和Google应用程序-API 16-720x1280
genymotion emulator,并在更新Google hangout应用程序时更新了其中的Google play服务。