java.lang.UnsatisfiedLinkError: dbopen

Sto provando a scrivere un test di Android su un block di codice nell'applicazione android. Il block di codice interagirà con il database (funzionalità della libreria di sqlshifter) specificamente dbopen (). Quando si esegue l'applicazione, funziona bene. Quando stavamo cercando di eseguire il caso di prova per quel block di codice (che coinvolge l'interazione di database). Sta dando l'errore seguente: java.lang.UnsatisfiedLinkError: dbopen

Potrebbe esaminare questo e suggerire.

  • Qual è la differenza tra setDisplayHomeAsUpEnabled e setHomeButtonEnabled?
  • android 5.0 lollipop installa l'installazione mostra Codice di errore sconosciuto durante l'installazione dell'applicazione: "-505"
  • android: come modificare il layout sul clic del button?
  • Come creare metodo per il metodo di calcolo dell'età in android
  • La chiamata di accesso di facebook incendi più volte
  • La directory dei dati non dispone di authorization di lettura / scrittura in Android
  • Non è ansible che un caso di prova abbia l'autorità di call una function che sta chiamando funzioni di libreria sqlshifter. Qualsiasi authorization necessaria, o Qualsiasi procedura specifica è presente per questo tipo di casi di test?

    log di errore completo:

    04-30 12:08:33.997: I/TestRunner(2169): started: teststateMachine(com.americanlogistics.mdd.rhapsody.view.test.SigninViewsateMachineTest) 04-30 12:08:34.147: W/dalvikvm(2169): No implementation found for native Linfo/guardianproject/database/sqlcipher/SQLiteDatabase;.dbopen (Ljava/lang/String;I)V 04-30 12:08:34.164: I/TestRunner(2169): failed: teststateMachine(com.americanlogistics.mdd.rhapsody.view.test.SigninViewsateMachineTest) 04-30 12:08:34.164: I/TestRunner(2169): ----- begin exception ----- 04-30 12:08:34.184: I/TestRunner(2169): java.lang.UnsatisfiedLinkError: dbopen 04-30 12:08:34.184: I/TestRunner(2169): at info.guardianproject.database.sqlcipher.SQLiteDatabase.dbopen(Native Method) 04-30 12:08:34.184: I/TestRunner(2169): at info.guardianproject.database.sqlcipher.SQLiteDatabase.<init>(SQLiteDatabase.java:1870) 04-30 12:08:34.184: I/TestRunner(2169): at info.guardianproject.database.sqlcipher.SQLiteDatabase.openDatabase(SQLiteDatabase.java:863) 04-30 12:08:34.184: I/TestRunner(2169): at info.guardianproject.database.sqlcipher.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:897) 04-30 12:08:34.184: I/TestRunner(2169): at info.guardianproject.database.sqlcipher.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:107) 04-30 12:08:34.184: I/TestRunner(2169): at com.americanlogistics.mdd.rhapsody.database.SendQueueDBAdapter.open(SendQueueDBAdapter.java:45) 04-30 12:08:34.184: I/TestRunner(2169): at com.americanlogistics.mdd.rhapsody.database.SendQueueDBAdapter.databaseHelperInstance(SendQueueDBAdapter.java:38) 04-30 12:08:34.184: I/TestRunner(2169): at com.americanlogistics.mdd.rhapsody.common.ApplicationController.startDatabase(ApplicationController.java:530) 04-30 12:08:34.184: I/TestRunner(2169): at com.americanlogistics.mdd.rhapsody.view.test.SigninViewsateMachineTest.teststateMachine(SigninViewsateMachineTest.java:61) 04-30 12:08:34.184: I/TestRunner(2169): at java.lang.reflect.Method.invokeNative(Native Method) 04-30 12:08:34.184: I/TestRunner(2169): at java.lang.reflect.Method.invoke(Method.java:507) 04-30 12:08:34.184: I/TestRunner(2169): at junit.framework.TestCase.runTest(TestCase.java:154) 04-30 12:08:34.184: I/TestRunner(2169): at junit.framework.TestCase.runBare(TestCase.java:127) 04-30 12:08:34.184: I/TestRunner(2169): at junit.framework.TestResult$1.protect(TestResult.java:106) 04-30 12:08:34.184: I/TestRunner(2169): at junit.framework.TestResult.runProtected(TestResult.java:124) 04-30 12:08:34.184: I/TestRunner(2169): at junit.framework.TestResult.run(TestResult.java:109) 04-30 12:08:34.184: I/TestRunner(2169): at junit.framework.TestCase.run(TestCase.java:118) 04-30 12:08:34.184: I/TestRunner(2169): at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169) 04-30 12:08:34.184: I/TestRunner(2169): at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) 04-30 12:08:34.184: I/TestRunner(2169): at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529) 04-30 12:08:34.184: I/TestRunner(2169): at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448) 04-30 12:08:34.184: I/TestRunner(2169): ----- end exception ----- 

    Codice:

    La row sottostante nel caso di prova è indirettamente chiamata function di libreria sqlshifter.

    . ApplicationController.getInstance () startDatabase (this.getContext () getApplicationContext ().);

  • Differenza tra directory / res e / asset
  • Aggiungi un'image di background alla forma in XML Android
  • Effettuare acquisti in-app con un account di gioco Google diverso dall'account principale del dispositivo
  • Prendi screenshot della camera durante la logging - Come in Galaxy S3?
  • non è ansible valutare il module 'react-native-maps': configuration con nome 'default' non trovato
  • Inserire o aggiornare Android SQLite
  • 3 Solutions collect form web for “java.lang.UnsatisfiedLinkError: dbopen”

     No implementation found for native Linfo/guardianproject/database/sqlcipher/SQLiteDatabase;.dbopen (Ljava/lang/String;I)V 

    Sembra che il codice sia incompatibile con la versione in esecuzione. Assicurarsi che siano compatibili.

    Ho riscontrato lo stesso errore durante l'intergrazione di SQLCipher per Android. La soluzione per me era call

     SQLiteDatabase.loadLibs(Context context) 

    prima di lavorare con il database stesso, come raccomandato. Un buon posto da call che è nella class derivata dell'applicazione.

    Vedere le istruzioni qui

    http://www.coderanch.com/t/79145/Websphere/Native-lib-already-loaded-another

    Questo errore di "insoddisfazione" potrebbe essere dovuto al fatto che una class è stata caricata, ma con il classloader errato nella gerarchia dei classloader di runtime.

    La consapevolezza è che il pacchetto Sqllite sia presente e nel Classpath, ma nello scenario in cui eseguono i test, l'istanza loader errata ha caricato i pacchetti DB.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.