2016-12-16 8 views
4

Я использую «.so» файлы в моем проекте, но он дает следующие ошибки „java.lang.UnsatisfiedLinkError: Нет реализация не найдено для булевых“, я уже пытаюсь воссоздать «.so» используя Cygwin и поместите его в папку jniLibs, а также создайте в нем jar, но он дает такую ​​же ошибку.java.lang.UnsatisfiedLinkError: Нет реализация не найдено для булевых

Но тот же самый файл «.so» работает в моем существующем проекте. Я стараюсь так много, но его вообще не работает, что я могу сделать?

com.amaze.filemanager E/art: No implementation found for boolean com.amaze.filemanager.scanner.SignatureLib.InitScanner(java.lang.String, java.lang.String) (tried Java_com_amaze_filemanager_scanner_SignatureLib_InitScanner and 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: FATAL EXCEPTION: Thread-5230 Process: com.amaze.filemanager, PID: 4579 java.lang.UnsatisfiedLinkError: No implementation found for boolean com.amaze.filemanager.scanner.SignatureLib.InitScanner(java.lang.String, java.lang.String) (tried Java_com_amaze_filemanager_scanner_SignatureLib_InitScanner and Java_com_amaze_filemanager_scanner_SignatureLib_InitScanner__Ljava_lang_String_2Ljava_lang_String_2) at com.amaze.filemanager.scanner.SignatureLib.InitScanner(Native Method) at com.amaze.filemanager.scanner.SignatureLib.InitializeScanner(SignatureLib.java:42) at com.amaze.filemanager.scanner.Signature.(Signature.java:62) at 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); 
    } 

} 
+0

Опубликуйте свою полную трассировку стека и код, который вызывает эту ошибку. –

+0

Я положил свою трассировку стека и код, это дает мне ошибку в 'return InitScanner (strDBPath, dbPathTemp)', Пожалуйста, помогите мне –

ответ

1

Да, полный стек след был needed- ты сломал его первоначально в месте, которое не имеет смысла. Каково его высказывание, что ваш .so-файл не имеет функции InitScanner, либо вы неправильно назвали его в файле C, вы получили подпись неправильно, или ее нет вообще. Или, если вы использовали C++, вы забыли функцию extern C.

+0

Уверен. .so находится в файле apk правильно? А для правильного чипсета? Вывешенная вами ошибка означает, что она не находит функцию. –

+0

Я поместил полный трек стека, но тот же код класса SignatureLib и C++ работает в существующем продукте, поэтому, когда я ошибаюсь –

+0

@FaheemRaza, смогли ли вы решить проблему? Пожалуйста, поделитесь, поскольку я сталкиваюсь с похожим. – saintjab