当前位置: 首页 > 知识库问答 >
问题:

Android-无法加载生成的本机库[重复]

袁泓
2023-03-14

我目前正在android studio 3.0.1中开发一个支持cpp的android库。因此,我从一个小测试开始检查功能,并得到以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no native-lib in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at com.pmdtec.testproject.TestClass.<clinit>(TestClass.java:6)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:107)

我的源文件是:

TestProject/app/src/java/com/example/TestClass。Java语言

package com.example;

public class TestClass
{
    static {
        System.loadLibrary("native-lib");
    }

    public static void main(String[] args)
    {
        new TestClass().helloNative();
    }

    native void helloNative();
}

TestProject/app/src/cpp/native-lib。cpp公司

#include <jni.h>

extern "C"
JNIEXPORT void JNICALL
Java_com_example_TestClass_helloNative(JNIEnv *env, jobject instance)
{
    // implement later
}

我还在TestProject/gradle中添加了“android.enableapt2=false”。属性,因为gradle生成得到了此错误(此错误不再发生。我只是想记录它,以及为什么我将此属性添加到gradle.properties)

Information:Gradle: Executing tasks: [:app:assembleDebug]
Information:Gradle: BUILD FAILED in 4s
Information:15.01.2018 11:46 - Compilation completed with 5 errors and 0 warnings in 6s 736ms
Error:Gradle: failed to create directory 'D:\workspace\TestProject\app\build\generated\source\r\debug\com\example'.
Error:Gradle: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Gradle: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Gradle: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Gradle: Execution failed for task ':app:processDebugResources'.
> Failed to execute aapt

此处未显示的文件是生成的文件。所以我的问题是,有人知道我为什么会在这篇文章的顶部提到这个错误吗?

更多详细信息:

结果。apk包含以下文件

/lib/arm64-v8a/libnative-lib.so
/lib/armeabi-v7a/libnative-lib.so
/lib/x86/libnative-lib.so
/lib/x86_64/libnative-lib.so
/META-INF/...
/res/...
AndroidManifest.xml
classes.dex
resources.arsc

有什么我必须做的,所以本地库是链接的吗?

非常感谢您的支持!

向罗伯特·A·弗里奇致意

共有1个答案

容鸿畴
2023-03-14

感谢大家阅读我的问题。事实证明,我必须在设备上运行我的代码。如果您使用android构建它,则无法通过main方法测试导航代码。

向罗伯特·A·弗里奇致意

 类似资料:
  • null 如果有人遇到了这个问题,并知道解决这个问题的任何事情,将不胜感激。

  • 问题内容: 有人可以帮助我制定一种无需重复在Android中生成随机数的方法吗?最大数量是:这是我的JSON数组。并且返回值应为整数。 我已经拥有的是: 我将方法强制转换了3次,因为我需要3个随机生成的数字。它有效,但是我不知道如何避免重复。因此,这3个数字彼此之间不会相同。 谢谢 问题答案: 您是否尝试过仅使用Math.random()? 只要做一些铸造魔术,您就可以轻松开始了: 编辑: 如果要

  • 我在Mac OS X中使用Hadoop。我想我正确地安装了Hadoop。当我试图运行一个示例WordCount问题时,我得到了以下错误: INFO util.NativEcodeLoader-无法为您的平台加载本机Hadoop库...在适用的情况下使用内置Java类

  • 当我试图在模拟器x86-64上运行我的项目时,我遇到了崩溃。我试过很多不同的解决办法,但没有人帮助我解决我的问题。 Engine ;Mobile:本机库加载失败:java.lang.unsatifiedLinkError:dalvik.system.pathClassLoader[DexpathList[[zip文件“/data/app/package-name-1/base.apk”],nati

  • 问题内容: 我尝试按照此处的指南,为Android上的TextView使用自定义字体。使用相同的字体,相同的代码,相同的所有内容,我在adb logcat中得到此信息: 我使用的是Molot.otf字体,该字体已在其中一个博客中成功使用。我还使用predator.ttf,这是另一种自定义字体,但格式为TrueType。 相关代码: 和 是什么原因造成的?它对博客中的人有用,那为什么不呢?API中是

  • 我正在尝试从Spark开始。我的库中有Hadoop(3.3.1)和Spark(3.2.2)。我已经将SPARK_HOME、PATH、HADOOP_HOME和LD_LIBRARY_PATH设置为各自的路径。我还在运行JDK 17(在终端中回声和-version工作正常)。 然而,我仍然得到以下错误: 有没有办法解决这个问题?