使用Xamarin的NDK Android应用程序中的DllNotFoundException

斯特鲁贝

我想制作一个将NDK与C ++结合使用的Android应用

我在Xamarin Studio中制作了一个新的Android App解决方案,称为ndkTest。我添加了一个文件夹jni,并在其中添加了以下文件:

  • Android.mk
  • Application.mk
  • 我的
  • 测试文件

以下是每个内容:

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := ndkTest
LOCAL_SRC_FILES := test.cpp
LOCAL_STATIC_LIBRARIES := my

include $(BUILD_SHARED_LIBRARY)

Application.mk

APP_ABI := armeabi-v7a
APP_STL := stlport_static

my.h

#ifndef __MY_H__
#define __MY_H__

#define MY_CONST    1

#ifdef __cplusplus
extern "C"
#endif
short
my_func( short          my_param );

#endif /* __MY_H__ */

test.cpp

// test.cpp
//

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <memory.h>

#include <iostream>
#include <fstream>
#include <vector>

#include "my.h"

#define SOME_CONST     2*MY_CONST
short  some_short;

#ifdef __cplusplus
extern "C"
{
#endif

static void static_func_0()
{
some_short = 0;
}

static void static_func_1()
{
some_short = 1;
}

#ifdef __cplusplus
}
#endif

static void static_print()
{
printf("static_print\n");
printf("some_short = %d\n", some_short);
}

extern "C" short getSomeShort()
{
printf("myExtern\n");
return some_short;
}

这是有趣的地方:我已经安装并正确配置了ndk。在命令行中,我进入项目目录并运行

ndk-build

我得到这个错误:

make.exe: *** No rule to make target [path to ndk]/sources/cxx-stl/stlport/test.cpp', needed byobj/local/armeabi/objs/ndkTest/test.o'. Stop.

这很奇怪,但是无论如何,我可以在Android.mk中指定test.cpp的完整路径,它会构建:

[armeabi] Compile++ thumb: ndkTest <= test.cpp
[armeabi] SharedLibrary : libndkTest.so
[armeabi] Install : libndkTest.so => libs/armeabi/libndkTest.so

所以现在我有了.so文件。将其添加到MainActivity.cs的顶部后using System.Runtime.InteropServices;

[DllImport("libndkTest", EntryPoint="getSomeShort")]
static extern short getSomeShort();

我在OnCreate中添加了一个调用。我得到一个DllNotFoundException我想念什么?

斯特鲁贝

我找到了一种解决方法:

在Xamarin Studio中,转到“项目选项”,“构建”,“ Android Build”,然后在“高级”选项卡中,取消选中除armeabi-v7a以外的所有受支持的ABI。由于某些原因,即使显然可以使用,该应用也无法在使用arm64-v8a的Samsung S6上运行。

青年汽车

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用ndk开发android应用程序时出错

来自分类Dev

使用NDK将C ++应用程序移植到Android

来自分类Dev

在我的Android NDK应用程序中添加libstagefright

来自分类Dev

xamarin.android 6.1应该使用哪个android ndk版本

来自分类Dev

Xamarin Android - 使用 Android NDK 保护 API 密钥

来自分类Dev

Xamarin.Forms Android应用程序中未显示应用程序图标

来自分类Dev

Xamarin应用程序中的参考Android库

来自分类Dev

防止Xamarin Android应用程序中的方向更改

来自分类Dev

Xamarin Forms - Android Splashscreen 也显示在主应用程序中

来自分类Dev

如何退出android NDK应用程序

来自分类Dev

Android,尝试使用muPDF在我的Xamarin android应用程序中查看PDF

来自分类Dev

使用默认呼叫应用程序在Android应用程序中拨打电话

来自分类Dev

使用Xamarin Vs Native android开发android应用程序

来自分类Dev

如何在xamarin android应用程序中创建该应用程序设置,以在该应用程序的Android设置/应用程序/应用程序设置中显示?

来自分类Dev

如何使用 Xamarin.Forms 在 iOS 和 Android 应用程序中实现 Docusign?

来自分类Dev

使用Cordova在Android Web View应用程序中录音

来自分类Dev

使用Android应用程序中的按钮执行PHP脚本

来自分类Dev

使用XMPP的Android中的聊天应用程序

来自分类Dev

Android中的“最近使用的应用程序”按钮

来自分类Dev

使用Kotlin的Android应用程序中的静态方法

来自分类Dev

如何在Xamarin Android应用程序中使用动画?

来自分类Dev

以 xamarin 形式使用 Web 应用程序中托管的 wcf

来自分类Dev

使用NDK-R9的Android NDK应用程序在最终apk中找不到* .so文件,并且未找到本机方法

来自分类Dev

xamarin android 的多个应用程序创建

来自分类Dev

使用 Xamarin.Forms 应用程序中的 .NET HttpClient 登录到 ASP.NET Core 应用程序在 Android 真实设备上不起作用

来自分类Dev

Xamarin Android添加按钮全部大写-如何在整个应用程序中应用样式?

来自分类Dev

Android NDK:应用程序完成后,使用malloc分配的内存将如何处理?

来自分类Dev

如何使用Android NDK将dumpsys编译为独立应用程序?

来自分类Dev

使用 NDK 时 APK 大小较大,如何减小 android 应用程序 (APK) 大小?

Related 相关文章

  1. 1

    使用ndk开发android应用程序时出错

  2. 2

    使用NDK将C ++应用程序移植到Android

  3. 3

    在我的Android NDK应用程序中添加libstagefright

  4. 4

    xamarin.android 6.1应该使用哪个android ndk版本

  5. 5

    Xamarin Android - 使用 Android NDK 保护 API 密钥

  6. 6

    Xamarin.Forms Android应用程序中未显示应用程序图标

  7. 7

    Xamarin应用程序中的参考Android库

  8. 8

    防止Xamarin Android应用程序中的方向更改

  9. 9

    Xamarin Forms - Android Splashscreen 也显示在主应用程序中

  10. 10

    如何退出android NDK应用程序

  11. 11

    Android,尝试使用muPDF在我的Xamarin android应用程序中查看PDF

  12. 12

    使用默认呼叫应用程序在Android应用程序中拨打电话

  13. 13

    使用Xamarin Vs Native android开发android应用程序

  14. 14

    如何在xamarin android应用程序中创建该应用程序设置,以在该应用程序的Android设置/应用程序/应用程序设置中显示?

  15. 15

    如何使用 Xamarin.Forms 在 iOS 和 Android 应用程序中实现 Docusign?

  16. 16

    使用Cordova在Android Web View应用程序中录音

  17. 17

    使用Android应用程序中的按钮执行PHP脚本

  18. 18

    使用XMPP的Android中的聊天应用程序

  19. 19

    Android中的“最近使用的应用程序”按钮

  20. 20

    使用Kotlin的Android应用程序中的静态方法

  21. 21

    如何在Xamarin Android应用程序中使用动画?

  22. 22

    以 xamarin 形式使用 Web 应用程序中托管的 wcf

  23. 23

    使用NDK-R9的Android NDK应用程序在最终apk中找不到* .so文件,并且未找到本机方法

  24. 24

    xamarin android 的多个应用程序创建

  25. 25

    使用 Xamarin.Forms 应用程序中的 .NET HttpClient 登录到 ASP.NET Core 应用程序在 Android 真实设备上不起作用

  26. 26

    Xamarin Android添加按钮全部大写-如何在整个应用程序中应用样式?

  27. 27

    Android NDK:应用程序完成后,使用malloc分配的内存将如何处理?

  28. 28

    如何使用Android NDK将dumpsys编译为独立应用程序?

  29. 29

    使用 NDK 时 APK 大小较大,如何减小 android 应用程序 (APK) 大小?

热门标签

归档