UnsatisfiedLinkError в нативном методе

Я получаю неудовлетворенную ошибку ссылки в нативном методе

Главное исключение Logcat

UnsatisfiedLinkError: Native method not found: rg.sqlite.database.sqlite.SQLiteConnection.nativeHasCodec:()Z

Полный Logcat

02-04 16:29:12.807: E/AndroidRuntime(5087): FATAL EXCEPTION: main
02-04 16:29:12.807: E/AndroidRuntime(5087): java.lang.UnsatisfiedLinkError: Native method not found: org.sqlite.database.sqlite.SQLiteConnection.nativeHasCodec:()Z
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteConnection.nativeHasCodec(Native Method)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteConnection.hasCodec(SQLiteConnection.java:160)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteDatabase.hasCodec(SQLiteDatabase.java:2195)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteConnectionPool.setMaxConnectionPoolSizeLocked(SQLiteConnectionPool.java:952)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteConnectionPool.(SQLiteConnectionPool.java:153)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:179)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at org.sqlite.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:669)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at com.example.samplesqlitedb.SearchDataDB.getAutoSuggestion(SearchDataDB.java:33)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at com.example.samplesqlitedb.MainActivity$2.onClick(MainActivity.java:56)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at android.view.View.performClick(View.java:4084)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at android.view.View$PerformClick.run(View.java:16966)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at android.os.Handler.handleCallback(Handler.java:615)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at android.os.Looper.loop(Looper.java:137)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at android.app.ActivityThread.main(ActivityThread.java:4745)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at java.lang.reflect.Method.invokeNative(Native Method)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at java.lang.reflect.Method.invoke(Method.java:511)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-04 16:29:12.807: E/AndroidRuntime(5087):     at dalvik.system.NativeStart.main(Native Method)

Пользовательский файл Java SQLiteConnectionhttps://www.dropbox.com/s/5ex6u9rzkwb7kqq/SQLiteConnection.java ошибка в строке № 160

Вот исходные файлы cpp, из которых я скомпилировал и создал бинарный файл »libsqliteX.so» файлhttp://www.sqlite.org/android/tree?ci=trunk&Re = JNI | SRC / орг / SQLite / данные &расширять

мой .so файлhttps://www.dropbox.com/s/d0u5pyhke54tcd6/libsqliteX.so

так что я думаю, что я должен изменить в нативном методе, чтобы решить эту проблему

static jboolean nativeHasCodec(JNIEnv* env, jobject clazz){
#ifdef SQLITE_HAS_CODEC
return true;
#else
return false;
#endif
}

Вот CDT GLOBAL BUILD CONSOLE

**** Build of configuration Default for project CustomSqlite ****

D:\software\adt-bundle-windows-x86-20130522\adt-bundle-windows-x86-20130522\android-ndk-r9-windows-x86\android-ndk-r9\ndk-build.cmd all 
"Compile++ thumb : sqliteX  0) {
        c.moveToFirst();
        do {            
        list1.add(c.getString(0));
        } while (c.moveToNext());

    }
    myTV.append("\n\nANTONYMS "+list1.toString());
    db.close();


}

class MyHelper extends SQLiteOpenHelper {
    public MyHelper(Context ctx) {
        super(ctx, DB_PATH.getPath(), null, 1);
    }

    public void onConfigure(SQLiteDatabase db) {
        db.execSQL("PRAGMA key = 'secret'");
    }

    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE t1(x)");
    }

    public void onUpgrade(SQLiteDatabase db, int iOld, int iNew) {
    }
}

/*
 * * If this is a SEE build, check that SQLiteOpenHelper still works.
 */
public void def() throws Exception {
    DB_PATH = new File("/storage/sdcard1/sk2.db");
    String DEFINITION = "select pos, definition, sample FROM word INNER JOIN sense ON word.wordid = sense.wordid INNER JOIN synset ON sense.synsetid = synset.synsetid LEFT JOIN sample ON sample.synsetid =  synset.synsetid  WHERE lemma ='"+ searchedword + "'";
    SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(DB_PATH, null);
    ArrayList list1 = new ArrayList();
    Cursor mcursor = db.rawQuery(DEFINITION, null);
    mcursor.moveToFirst();
    if (mcursor.getCount() > 0) {
        do {

            list1.add(mcursor.getString(1));
        } while (mcursor.moveToNext());

    }
    myTV.append("\nDEFINATION " + list1.toString());
    db.close();
}

public void run_the_tests(View view) {
    System.loadLibrary("sqliteX");
    myTV.setText("");       
    searchedword = query.getText().toString();
    try {
        report_version();
        def();
        syno();
        anto();

    } catch (Exception e) {
        myTV.append("Exception: " + e.toString() + "\n");
        myTV.append(android.util.Log.getStackTraceString(e) + "\n");
    }
}
}

Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос