簡體   English   中英

在Android Studio中引用.so文件時遇到問題

[英]Trouble referencing a .so file in android studio

因此,我嘗試將CLE集成到Android中,因此,我必須添加一些.so文件。 我正在從這里開始教程

在集成Star庫之前,一切正常,但是當我運行程序時,出現以下異常:

Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/data/com.srplab.starcore/lib/libstar_java.so" not found

現在要包括這些.so文件,我創建了一個文件夾jniLibs並為3種體系結構放置了.so文件:

在此處輸入圖片說明

我將以下代碼行添加到build.gradle中:

 sourceSets
            {
                main
                        {

                            jniLibs.srcDirs = ['src/main/jnilibs']

                        }
            }

但是,當我再次運行以下代碼時:

try {
            //System.loadLibrary("mysharedlibrary");
            System.load("/data/data/"+getPackageName()+"/libstar_java.so");
        } catch (UnsatisfiedLinkError use) {
            Log.e("JNI", "WARNING: Could not load libmysharedlibrary.so");
            use.printStackTrace();
        }

我收到一個異常,表示.so文件未加載。

正確的做法是什么?

您的“ armeabiv7a ”文件夾必須重命名為“ armeabi-v7a ”。 也有錯別字:

jniLibs.srcDirs = ['src/main/jnilibs']

您的文件夾帶有大L:

jniLibs.srcDirs = ['src/main/jniLibs']

順便說一下,本地庫默認使用“ src / main / jniLibs ”,而不必在gradle腳本中指定它。

上面沒有完整的代碼塊,但是您是否從靜態初始化程序加載庫? 喜歡:

static 
{
    System.loadLibrary("star_java"); 
}  

並查看您的apk,以確保您的lib已成功收集。 您可以在app/build/outputs/apk/看到它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM