[英]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.