jeudi 16 avril 2015

trying to load library libstlport_shared.so

I followed this Github post for password encryption and decryption using sqlite local database.


I got a crash.I have posted the logcat below.I am getting fatal exception 6 sigbat error and trying to load libstlportshared.so.


I am using kitkat as a target version.I have used the .so file from this SQLCipher+for+Android+v2.2.2.zip


Stacktrace:



04-16 06:00:52.828: D/dalvikvm(8663): Trying to load lib /data/app-lib/com.drspaceboo.sqlite2sqlcipher-2/libstlport_shared.so 0xb3d6d468
04-16 06:00:52.828: W/linker(8663): libstlport_shared.so has text relocations. This is wasting memory and is a security risk. Please fix.
04-16 06:00:52.838: D/dalvikvm(8663): Added shared lib /data/app-lib/com.drspaceboo.sqlite2sqlcipher-2/libstlport_shared.so 0xb3d6d468
04-16 06:00:52.838: D/dalvikvm(8663): No JNI_OnLoad found in /data/app-lib/com.drspaceboo.sqlite2sqlcipher-2/libstlport_shared.so 0xb3d6d468, skipping init
04-16 06:00:52.838: D/dalvikvm(8663): Trying to load lib /data/app-lib/com.drspaceboo.sqlite2sqlcipher-2/libsqlcipher_android.so 0xb3d6d468
04-16 06:00:52.838: W/linker(8663): libsqlcipher_android.so has text relocations. This is wasting memory and is a security risk. Please fix.
04-16 06:00:52.848: D/dalvikvm(8663): Added shared lib /data/app-lib/com.drspaceboo.sqlite2sqlcipher-2/libsqlcipher_android.so 0xb3d6d468
04-16 06:00:52.848: D/dalvikvm(8663): No JNI_OnLoad found in /data/app-lib/com.drspaceboo.sqlite2sqlcipher-2/libsqlcipher_android.so 0xb3d6d468, skipping init
04-16 06:00:52.858: D/dalvikvm(8663): Trying to load lib /data/app-lib/com.drspaceboo.sqlite2sqlcipher-2/libdatabase_sqlcipher.so 0xb3d6d468
04-16 06:00:52.858: W/linker(8663): libdatabase_sqlcipher.so has text relocations. This is wasting memory and is a security risk. Please fix.
04-16 06:00:52.868: D/dalvikvm(8663): Added shared lib /data/app-lib/com.drspaceboo.sqlite2sqlcipher-2/libdatabase_sqlcipher.so 0xb3d6d468
04-16 06:00:52.868: I/Database(8663): JNI_OnLoad called
04-16 06:00:52.868: I/Database(8663): JNI_OnLoad register methods

04-16 06:00:52.868: E/Database(8663): Can't find net/sqlcipher/database/SQLiteDatabase

04-16 06:00:52.868: W/dalvikvm(8663): JNI WARNING: JNI function FindClass called with exception pending
04-16 06:00:52.868: W/dalvikvm(8663): in Ljava/lang/Runtime;.nativeLoad:(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/String; (FindClass)
04-16 06:00:52.868: W/dalvikvm(8663): Pending exception is:
04-16 06:00:52.868: I/dalvikvm(8663): java.lang.NoClassDefFoundError: net/sqlcipher/database/SQLiteDatabase
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.Runtime.nativeLoad(Native Method)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.Runtime.doLoad(Runtime.java:421)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.Runtime.loadLibrary(Runtime.java:362)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.System.loadLibrary(System.java:526)
04-16 06:00:52.868: I/dalvikvm(8663): at info.guardianproject.database.sqlcipher.SQLiteDatabase.loadLibs(SQLiteDatabase.java:106)
04-16 06:00:52.868: I/dalvikvm(8663): at com.drspaceboo.sqlite2sqlcipher.SQLite2SQLCipher.onCreate(SQLite2SQLCipher.java:51)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.Activity.performCreate(Activity.java:5231)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-16 06:00:52.868: I/dalvikvm(8663): at android.os.Handler.dispatchMessage(Handler.java:102)
04-16 06:00:52.868: I/dalvikvm(8663): at android.os.Looper.loop(Looper.java:136)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.ActivityThread.main(ActivityThread.java:5017)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.reflect.Method.invokeNative(Native Method)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.reflect.Method.invoke(Method.java:515)
04-16 06:00:52.868: I/dalvikvm(8663): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-16 06:00:52.868: I/dalvikvm(8663): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-16 06:00:52.868: I/dalvikvm(8663): at dalvik.system.NativeStart.main(Native Method)
04-16 06:00:52.868: I/dalvikvm(8663): Caused by:
04-16 06:00:52.868: I/dalvikvm(8663): java.lang.ClassNotFoundException: Didn't find class "net.sqlcipher.database.SQLiteDatabase" on path: DexPathList[[zip file "/data/app/com.drspaceboo.sqlite2sqlcipher-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.drspaceboo.sqlite2sqlcipher-2, /system/lib]]
04-16 06:00:52.868: I/dalvikvm(8663): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.Runtime.nativeLoad(Native Method)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.Runtime.doLoad(Runtime.java:421)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.Runtime.loadLibrary(Runtime.java:362)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.System.loadLibrary(System.java:526)
04-16 06:00:52.868: I/dalvikvm(8663): at info.guardianproject.database.sqlcipher.SQLiteDatabase.loadLibs(SQLiteDatabase.java:106)
04-16 06:00:52.868: I/dalvikvm(8663): at com.drspaceboo.sqlite2sqlcipher.SQLite2SQLCipher.onCreate(SQLite2SQLCipher.java:51)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.Activity.performCreate(Activity.java:5231)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-16 06:00:52.868: I/dalvikvm(8663): at android.os.Handler.dispatchMessage(Handler.java:102)
04-16 06:00:52.868: I/dalvikvm(8663): at android.os.Looper.loop(Looper.java:136)
04-16 06:00:52.868: I/dalvikvm(8663): at android.app.ActivityThread.main(ActivityThread.java:5017)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.reflect.Method.invokeNative(Native Method)
04-16 06:00:52.868: I/dalvikvm(8663): at java.lang.reflect.Method.invoke(Method.java:515)
04-16 06:00:52.868: I/dalvikvm(8663): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-16 06:00:52.898: I/dalvikvm(8663): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-16 06:00:52.898: I/dalvikvm(8663): at dalvik.system.NativeStart.main(Native Method)
04-16 06:00:52.898: I/dalvikvm(8663): "main" prio=5 tid=1 NATIVE
04-16 06:00:52.908: I/dalvikvm(8663): | group="main" sCount=0 dsCount=0 obj=0xb3aa4ca8 self=0xb7ec1398
04-16 06:00:52.908: I/dalvikvm(8663): | sysTid=8663 nice=0 sched=0/0 cgrp=apps handle=-1225199276
04-16 06:00:52.908: I/dalvikvm(8663): | state=R schedstat=( 240000000 690000000 106 ) utm=19 stm=5 core=0
04-16 06:00:52.938: I/dalvikvm(8663): #00 pc 0000132e /system/lib/libcorkscrew.so (unwind_backtrace_thread+29)
04-16 06:00:52.938: I/dalvikvm(8663): #01 pc 000603ea /system/lib/libdvm.so (dvmDumpNativeStack(DebugOutputTarget const*, int)+33)
04-16 06:00:52.938: I/dalvikvm(8663): #02 pc 000543e4 /system/lib/libdvm.so (dvmDumpThreadEx(DebugOutputTarget const*, Thread*, bool)+395)
04-16 06:00:52.938: I/dalvikvm(8663): #03 pc 00054452 /system/lib/libdvm.so (dvmDumpThread(Thread*, bool)+25)
04-16 06:00:52.938: I/dalvikvm(8663): #04 pc 0003871c /system/lib/libdvm.so
04-16 06:00:52.938: I/dalvikvm(8663): #05 pc 000416b0 /system/lib/libdvm.so
04-16 06:00:52.948: I/dalvikvm(8663): #06 pc 00005896 /data/app-lib/com.drspaceboo.sqlite2sqlcipher-2/libdatabase_sqlcipher.so (sqlcipher::register_android_database_SQLiteCompiledSql(_JNIEnv*)+17)
04-16 06:00:52.948: I/dalvikvm(8663): #07 pc 00005c2e /data/app-lib/com.drspaceboo.sqlite2sqlcipher-2/libdatabase_sqlcipher.so (JNI_OnLoad+57)
04-16 06:00:52.948: I/dalvikvm(8663): #08 pc 0004fde2 /system/lib/libdvm.so (dvmLoadNativeCode(char const*, Object*, char**)+465)
04-16 06:00:52.948: I/dalvikvm(8663): #09 pc 0006746c /system/lib/libdvm.so
04-16 06:00:52.948: I/dalvikvm(8663): #10 pc 00026fe0 /system/lib/libdvm.so
04-16 06:00:52.948: I/dalvikvm(8663): #11 pc 0002df34 /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
04-16 06:00:52.948: I/dalvikvm(8663): #12 pc 0002b5cc /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
04-16 06:00:52.948: I/dalvikvm(8663): #13 pc 000605fc /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+391)
04-16 06:00:52.948: I/dalvikvm(8663): #14 pc 000684c6 /system/lib/libdvm.so
04-16 06:00:52.948: I/dalvikvm(8663): #15 pc 00026fe0 /system/lib/libdvm.so
04-16 06:00:52.948: I/dalvikvm(8663): #16 pc 0002df34 /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
04-16 06:00:52.948: I/dalvikvm(8663): #17 pc 0002b5cc /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
04-16 06:00:52.948: I/dalvikvm(8663): #18 pc 00060318 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+335)
04-16 06:00:52.948: I/dalvikvm(8663): #19 pc 00049b4e /system/lib/libdvm.so
04-16 06:00:52.948: I/dalvikvm(8663): #20 pc 0003cd02 /system/lib/libdvm.so
04-16 06:00:52.948: I/dalvikvm(8663): #21 pc 0004cddc /system/lib/libandroid_runtime.so
04-16 06:00:52.948: I/dalvikvm(8663): #22 pc 0004dad6 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+353)
04-16 06:00:52.948: I/dalvikvm(8663): #23 pc 0000105a /system/bin/app_process
04-16 06:00:52.948: I/dalvikvm(8663): #24 pc 0000e238 /system/lib/libc.so (__libc_init+47)
04-16 06:00:52.948: I/dalvikvm(8663): at java.lang.Runtime.nativeLoad(Native Method)
04-16 06:00:52.948: I/dalvikvm(8663): at java.lang.Runtime.doLoad(Runtime.java:421)
04-16 06:00:52.948: I/dalvikvm(8663): at java.lang.Runtime.loadLibrary(Runtime.java:362)
04-16 06:00:52.948: I/dalvikvm(8663): at java.lang.System.loadLibrary(System.java:526)
04-16 06:00:52.948: I/dalvikvm(8663): at info.guardianproject.database.sqlcipher.SQLiteDatabase.loadLibs(SQLiteDatabase.java:106)
04-16 06:00:52.948: I/dalvikvm(8663): at com.drspaceboo.sqlite2sqlcipher.SQLite2SQLCipher.onCreate(SQLite2SQLCipher.java:51)
04-16 06:00:52.948: I/dalvikvm(8663): at android.app.Activity.performCreate(Activity.java:5231)
04-16 06:00:52.948: I/dalvikvm(8663): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-16 06:00:52.948: I/dalvikvm(8663): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
04-16 06:00:52.948: I/dalvikvm(8663): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-16 06:00:52.948: I/dalvikvm(8663): at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-16 06:00:52.948: I/dalvikvm(8663): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-16 06:00:52.948: I/dalvikvm(8663): at android.os.Handler.dispatchMessage(Handler.java:102)
04-16 06:00:52.948: I/dalvikvm(8663): at android.os.Looper.loop(Looper.java:136)
04-16 06:00:52.948: I/dalvikvm(8663): at android.app.ActivityThread.main(ActivityThread.java:5017)
04-16 06:00:52.948: I/dalvikvm(8663): at java.lang.reflect.Method.invokeNative(Native Method)
04-16 06:00:52.948: I/dalvikvm(8663): at java.lang.reflect.Method.invoke(Method.java:515)
04-16 06:00:52.948: I/dalvikvm(8663): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-16 06:00:52.948: I/dalvikvm(8663): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-16 06:00:52.948: I/dalvikvm(8663): at dalvik.system.NativeStart.main(Native Method)
04-16 06:00:52.948: E/dalvikvm(8663): VM aborting
04-16 06:00:52.948: A/libc(8663): Fatal signal 6 (SIGABRT) at 0x000021d7 (code=-6), thread 8663 (qlite2sqlcipher)


Edited: enter image description here


enter image description here


Sqlite2SQLCipher.java:



public class SQLite2SQLCipher extends Activity
{
/*
* Please replace the following variables with the ones
* relevant to your application
*/
private static final String SQLITE_FILE = "test.sqlite";
private static final String DB_NAME = "test.db";
private static final String DB_PASSWORD = "testPassword";
//Stop replacing here

private static final String DEBUG_TAG = "SQLite2SQLCipher";

private SQLiteDatabase database;
private ProgressDialog progressDialog;

/*
* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

//Loading the SQLCipher libraries
SQLiteDatabase.loadLibs(this); ----->51th line

//Preparing the database directories and file to be opened
File databaseFile = getDatabasePath(DB_NAME);
databaseFile.mkdirs();
databaseFile.delete();

//Opening or Creating the database with our specified password
database = SQLiteDatabase.openOrCreateDatabase(databaseFile, DB_PASSWORD, null);

//Making a progress dialog so we can see that the database is still being loaded
progressDialog = new ProgressDialog(this);
progressDialog.setCancelable(false);
progressDialog.setMessage("Creating database");
progressDialog.show();

/*
* Creating the database from the .sqlite file. We do this in
* an AsyncTask so that we aren't locking the UI thread.
*/
new CreateDatabaseFromFileTask().execute();
}

private class CreateDatabaseFromFileTask extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... params)
{
StringBuilder statement = new StringBuilder();
String line;
int lineCount = 1;
int statementCount = 1;
BufferedReader reader = null;

try
{
//Opening the .sqlite file from the Assets folder
reader = new BufferedReader(new InputStreamReader(getAssets().open(SQLITE_FILE)));

while((line = reader.readLine()) != null)
{
//A very handy line count log
Log.d(DEBUG_TAG,"Reading line " + lineCount);
if(line.length() > 1)
{
statement.append(line);

//If this line is the end of the statement we run that statement
if(line.matches(".*;$"))
{
//Getting the string from the String Builder
String statementString = statement.toString();
statement = new StringBuilder();

//Logging the statement, this might help with debugging any problems you encounter
Log.d(DEBUG_TAG,"Statement #" + statementCount + "\"" + statementString + "\"");
statementCount++;

//Loading the statement into the database
database.execSQL(statementString);
}
}
lineCount++;
}

//Closing the progress dialog
progressDialog.dismiss();
//Updating the UI with a success message
updateUIWithSuccess();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
//Closing the buffered reader
try
{
reader.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
//Closing the database
database.close();
return null;
}
}


}


I don't know how to solve this.Any help is much appreciated.


Aucun commentaire:

Enregistrer un commentaire