Fah*_*aza 6 java-native-interface android unsatisfiedlinkerror
我在项目中使用“.so”文件,但它给出以下错误“ java.lang.UnsatisfiedLinkError:未找到布尔值的实现”,我已经尝试使用 Cygwin 重新创建“.so”并将其放入jniLibs文件夹中并使用 create一罐它,但它给出了同样的错误。
但相同的“.so”文件正在我现有的项目中工作。我尝试了很多方法,但根本不起作用,我该怎么办?
com.amaze.filemanager E/art:找不到布尔值 com.amaze.filemanager.scanner.SignatureLib.InitScanner(java.lang.String, java.lang.String) 的实现(尝试过 Java_com_amaze_filemanager_scanner_SignatureLib_InitScanner 和 Java_com_amaze_filemanager_scanner_SignatureLib_InitScanner__Ljava_lang_String_2Ljava_lang_String_2) 12- 19 11:47 :07.463 4579-4934/com.amaze.filemanager E/AndroidRuntime:致命异常:Thread-5230进程:com.amaze.filemanager,PID:4579 java.lang.UnsatisfiedLinkError:找不到布尔值com.amaze.filemanager.scanner的实现.SignatureLib.InitScanner(java.lang.String, java.lang.String) (尝试了 Java_com_amaze_filemanager_scanner_SignatureLib_InitScanner 和 Java_com_amaze_filemanager_scanner_SignatureLib_InitScanner__Ljava_lang_String_2Ljava_lang_String_2) 在 com.amaze.filemanager.scanner.SignatureLib.InitScanner(本机方法) 在 com.amaze.file manager.scanner.SignatureLib。 InitializeScanner(SignatureLib.java:42) 在 com.amaze.filemanager.scanner.Signature.(Signature.java:62) 在 com.amaze.filemanager.ScanForVirusActivity$1.run(ScanForVirusActivity.java:66)
public class SignatureLib {
static {
System.loadLibrary("Signature");
}
SharedPreferencesUtils spu;
Context context;
public SignatureLib(Context context) {
this.context = context;
}
private native boolean InitScanner(String strDBPath, String dbPathTemp);
private native boolean DeInitScanner();
private native String checkVirus(String filepath);
private native boolean UploadFile(String FilePath, String DeviceID, String path);
private native boolean DownloadFile(String FilePath, String DeviceID, String path);
private native boolean IsGameApp(String AppName);
private native boolean SetUpdateInProgressStatus(boolean bStatus);
public boolean InitializeScanner(String strDBPath) {
spu = new SharedPreferencesUtils();
String packageName = context.getPackageName();
String dbPathTemp = "data/data/" + packageName + "/";
return InitScanner(strDBPath, dbPathTemp);
}
}
Run Code Online (Sandbox Code Playgroud)
是的,需要完整的堆栈跟踪 - 您最初在一个没有意义的地方将其中断。它的意思是你的 .so 文件没有 InitScanner 函数 - 要么你在 C 文件中错误命名它,要么你的签名错误,或者它根本不存在。或者,如果您使用 C++,则忘记了 extern C 函数。
归档时间: |
|
查看次数: |
13507 次 |
最近记录: |