java.lang.UnsatisfiedLinkError中:dbopen [英] java.lang.UnsatisfiedLinkError: dbopen

查看:170
本文介绍了java.lang.UnsatisfiedLinkError中:dbopen的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想写一个Android测试用例code在code中的机器人application.the块将与数据库(sqlcipher库函数)交互块专门dbopen()函数。当运行应用程序,它工作正常。当我们试图执行测试用例为code表示块(其中涉及数据库交互)。它给以下错误:java.lang.UnsatisfiedLinkError中:dbopen

难道任何一下,并建议。

不能在测试用例有权调用一个函数,它在呼唤sqlcipher库函数。  所需的任何权限,或任何具体的程序是有这种类型的测试用例?

完整的错误日志:

  12月4日至30日:08:33.997:I / TestRunner的(2169):开始:teststateMachine(com.americanlogistics.mdd.rhapsody.view.test.SigninViewsateMachineTest)
            12月4号至30日:08:34.147:W / dalvikvm(2169):没有找到实现原生LINFO / guardianproject /数据库/ sqlcipher / SQLiteDatabase; .dbopen(Ljava /朗/字符串;我)V
            12月4号至30日:08:34.164:I / TestRunner的(2169):失败:teststateMachine(com.americanlogistics.mdd.rhapsody.view.test.SigninViewsateMachineTest)
            12月4号至30日:08:34.164:I / TestRunner的(2169):--​​---开始异常-----
            12月4号至30日:08:34.184:I / TestRunner的(2169):java.lang.UnsatisfiedLinkError中:dbopen
            12月4号至30日:08:34.184:I / TestRunner的(2169):在info.guardianproject.database.sqlcipher.SQLiteDatabase.dbopen(本机方法)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在info.guardianproject.database.sqlcipher.SQLiteDatabase< INIT>(SQLiteDatabase.java:1870)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在info.guardianproject.database.sqlcipher.SQLiteDatabase.openDatabase(SQLiteDatabase.java:863)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在info.guardianproject.database.sqlcipher.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:897)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在info.guardianproject.database.sqlcipher.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:107)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在com.americanlogistics.mdd.rhapsody.database.SendQueueDBAdapter.open(SendQueueDBAdapter.java:45)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在com.americanlogistics.mdd.rhapsody.database.SendQueueDBAdapter.databaseHelperInstance(SendQueueDBAdapter.java:38)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在com.americanlogistics.mdd.rhapsody.common.ApplicationController.startDatabase(ApplicationController.java:530)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在com.americanlogistics.mdd.rhapsody.view.test.SigninViewsateMachineTest.teststateMachine(SigninViewsateMachineTest.java:61)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在java.lang.reflect.Method.invokeNative(本机方法)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在java.lang.reflect.Method.invoke(Method.java:507)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在junit.framework.TestCase.runTest(TestCase.java:154)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在junit.framework.TestCase.runBare(TestCase.java:127)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在junit.framework.TestResult $ 1.protect(TestResult.java:106)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在junit.framework.TestResult.runProtected(TestResult.java:124)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在junit.framework.TestResult.run(TestResult.java:109)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在junit.framework.TestCase.run(TestCase.java:118)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
            12月4号至30日:08:34.184:I / TestRunner的(2169):在android.app.Instrumentation $ InstrumentationThread.run(Instrumentation.java:1448)
            12月4号至30日:08:34.184:I / TestRunner的(2169):--​​---结束异常-----
 

code:

下面的线测试用例间接调用sqlcipher库函数。

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

解决方案

 没有找到实现原生LINFO / guardianproject /数据库/ sqlcipher / SQLiteDatabase; .dbopen(Ljava /朗/字符串;我)V
 

看来你code是您正在使用的版本不兼容。确保它们是兼容的。

I am trying to write an Android test case on a block of code in the android application.the block of code will interact with the database (sqlcipher library functions) specifically dbopen() function. When running the application, it is working fine. When we were trying to execute the test case for that block of code(which involves database interaction). It is giving following error: java.lang.UnsatisfiedLinkError: dbopen

Could any look into this and suggest.

Can't a test case has authority to call a function which is calling sqlcipher library functions. Any permissions required, or Any specific procedure is there for this type of test cases ?

complete Error log:

            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 -----

Code:

The below line in the test case is indirectly calling sqlcipher library function.

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

解决方案

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

It seems you code is incompatible with version you are running. Make sure they are compatible.

这篇关于java.lang.UnsatisfiedLinkError中:dbopen的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆