{ "id": "124164", "key": "TIMOB-16092", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "15817", "description": "2014 Sprint 01", "name": "2014 Sprint 01", "archived": true, "released": true, "releaseDate": "2014-01-17" }, { "id": "15819", "description": "2014 Sprint 01 Core", "name": "2014 Sprint 01 Core", "archived": true, "released": true, "releaseDate": "2014-01-17" }, { "id": "15856", "description": "Release 3.2.1", "name": "Release 3.2.1", "archived": false, "released": true, "releaseDate": "2014-02-10" }, { "id": "15422", "description": "Release 3.3.0", "name": "Release 3.3.0", "archived": false, "released": true, "releaseDate": "2014-07-16" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2014-01-07T03:59:24.000+0000", "created": "2013-12-24T05:50:43.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "android", "module_android", "regression", "triage" ], "versions": [], "issuelinks": [ { "id": "34350", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "124236", "key": "AC-2272", "fields": { "summary": "ti.udp - Building error after adding module", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "34195", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "124570", "key": "MOD-1642", "fields": { "summary": "RedLaser, Android: Exception starting the barcode using 3.2.0.GA", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2014-01-22T18:21:01.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "I am facing serious issue from last 2 days. I have updated my titanium sdk from 3.1.1 to 3.2.0 and updated titanium studio also to 3.2.0, I have created a titanium android module for one of my project, that has included with third party .jar and .so files, both module and application was working fine for sdk 3.1.1 . SInce I updated my sdk yesterday, It stopped working and throwing an error \"Couldn't load sqlcipher_android: findLibrary returned null\"\r\n\r\nI have rebuilt the module and apps with different sdk versions, still having same problem.\r\n\r\nPlease find below error details,\r\n\r\n [WARN] : W/System.err: java.lang.UnsatisfiedLinkError: Couldn't load sqlcipher_android: findLibrary returned null\r\n [WARN] : W/System.err: \tat java.lang.Runtime.loadLibrary(Runtime.java:365)\r\n [WARN] : W/System.err: \tat java.lang.System.loadLibrary(System.java:535)\r\n [WARN] : W/System.err: \tat net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:143)\r\n [WARN] : W/System.err: \tat net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:137)\r\n [WARN] : W/System.err: \tat com.mdcinternational.selfscan.internal.n.(SourceFile:38)\r\n [WARN] : W/System.err: \tat com.mdcinternational.selfscan.MDCSelfscan.startShoppingTrip(SourceFile:1328)\r\n [WARN] : W/System.err: \tat com.ncc.selfscan.NccselfscanandroidModule.startShoppingTrip(NccselfscanandroidModule.java:271)\r\n [WARN] : W/System.err: \tat org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(Native Method)\r\n [WARN] : W/System.err:\r\n [WARN] : W/System.err: \tat org.appcelerator.kroll.KrollProxy.doFireEvent(KrollProxy.java:884)\r\n [WARN] : W/System.err: \tat org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1107)\r\n [WARN] : W/System.err: \tat android.os.Handler.dispatchMessage(Handler.java:95)\r\n [WARN] : W/System.err: \tat android.os.Looper.loop(Looper.java:137)\r\n [WARN] : W/System.err: \tat org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:112)\r\n\r\nAnyone please help me.\r\n", "attachment": [ { "id": "44798", "filename": "Screen Shot 2013-12-24 at 9.46.09 AM.png", "author": { "name": "rmichael", "key": "rmichael", "displayName": "Robin Michael", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-12-24T05:50:43.000+0000", "size": 276079, "mimeType": "image/png" } ], "flagged": false, "summary": "Android: Couldn't load sqlcipher_android: findLibrary returned null", "creator": { "name": "rmichael", "key": "rmichael", "displayName": "Robin Michael", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "rmichael", "key": "rmichael", "displayName": "Robin Michael", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Mac OSX, Titanium Studio 3.2.0 SDK 3.2.0, Android 2.3.3 to 4.4", "comment": { "comments": [ { "id": "285734", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "It's not _exactly_ your issue, but have you searched on Google for related items? This seems close: https://github.com/sqlcipher/android-database-sqlcipher/issues/27 and suggests you need to copy some files around. Other search results for \"java.lang.UnsatisfiedLinkError: Couldn't load sqlcipher android: findLibrary returned null\" show a similar suggestion.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-12-24T14:39:01.000+0000", "updated": "2013-12-24T14:39:01.000+0000" }, { "id": "285839", "author": { "name": "rmichael", "key": "rmichael", "displayName": "Robin Michael", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Thanks for reply. Yes, that seems to be closer to the issue mentioned to that link. But we cannot copy manually every time.and also we cannot publish the module with the manual action. In my case, I copied also not working. It seems problem with builder and it not copying anything to libs from lib folder. and also i think, folder naming conversion of latest androids lib to libs also one of the problem. because module creation in titanium is very old, no recent improvements and changes. Every new sdks copying old documents and put it into the new documentation. I suggest, please concentrate little bit on module creation also, because that will help a lot for native developers to move into titanium to make cross platform apps.", "updateAuthor": { "name": "rmichael", "key": "rmichael", "displayName": "Robin Michael", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-12-26T07:52:37.000+0000", "updated": "2013-12-26T07:52:37.000+0000" }, { "id": "286017", "author": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~rmichael], it almost seems like the .so/.jar files that you included in your module didn't make it over into the apk during the build process.\n\nIf you could provide the following information, it will help us diagnose the issue:\n- What is the directory structure of your module project? Where did you place the .so/.jar files? If could provide a simple module test case that reproduces the issue, and attach it to the ticket, that would be best.\n\nIf you can provide a sample, this is what I will be looking for:\n- Create an apk that uses the module, and check to see if the .so/.jar files inside the apk exist when unzipped.\n- Compare the apk from a 3.1.1 build vs a 3.2.0 build and see what's missing.\n", "updateAuthor": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-12-27T22:54:38.000+0000", "updated": "2013-12-27T22:54:38.000+0000" }, { "id": "286338", "author": { "name": "rmichael", "key": "rmichael", "displayName": "Robin Michael", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hi @Allen Yeung, Thanks for reply. I understand the modules .so files could not find under apk.\r\nPlease find the information below that you requested,\r\n\r\nmodule directory structure is,\r\n\r\n->src\r\n->assets\r\n->build\r\n->hooks\r\n->lib\r\n ->mysdk.jar\r\n ->armeabi\r\n  ->liblib1.so\r\n  ->liblib1.so\r\n ->x86\r\n  ->liblib1.so\r\n  ->liblib1.so\r\n->libs\r\n ->armeabi\r\n  ->liblib1.so\r\n  ->liblib1.so\r\n ->armeabi-v7a\r\n  ->liblib1.so\r\n  ->liblib1.so\r\n ->x86\r\n  ->liblib1.so\r\n  ->liblib1.so\r\n->platform\r\n->build.xml\r\n->timodule.xml\r\n\r\nnot mentioned some directory and files like documentation, example ..etc .\r\nIn the above structure, library files(armeabi,x86) under lib folder is not copied to the module.zip under lib OR libs . But, when i copy that files to libs folder of the above structure will copy to module.zip under libs folder.\r\n\r\nI have unzipped the .apk file, I can find the .so files under lib armeabi and x86 and not an armeabi-v7a .\r\nBoth 3.1.1 sdk and 3.2.0 sdk have the same, but why 3.2.0 sdk is not finding. I understand the processor thing also, The mobile i tried the application uses the processor armeabi-v7a , then why the same worked for 3.1.1 and not for 3.2.0\r\n\r\none more thing, i have fixed the issue by copying .so files from armeabi folder to armeabi-v7a of the libs folder in above structure.\r\n\r\nsee, we are titanium developers are much happy because of performance of titanium applications, but we can give some more importance to module development also. one more thing i found titanium ios module development is not handling completion block . When I tried to make the same module for ios, i found this. Please help us and our titanium developers.\r\n\r\nThanks,\r\nRobin M.", "updateAuthor": { "name": "rmichael", "key": "rmichael", "displayName": "Robin Michael", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-12-31T05:46:16.000+0000", "updated": "2013-12-31T05:49:27.000+0000" }, { "id": "286542", "author": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~rmichael], thanks for the info.\n\nI'm still having problems reproducing the issue with the information that you have provided. In general the lib directory is for jar files, so it makes sense that the .so files don't get copied over. I also believe that the libs directory contains generated .so files during the module build process, so placing files in that directory will not persist.\n\nFor the jar file inside the lib directory, I did confirm that it gets compiled and run through the dexer just like in 3.1.X. I ran the old command, and noticed that the jar file inside my module was included in both the javac and dx command.\n\nAt this point, it would be best if you could provide a sample module project (with the source) that shows the bug you are running into. It's unclear at the moment which library you are trying to load, and how you are loading it. If can we can reproduce the issue on our end, we can move forward with finding a resolution.\n\nThanks!", "updateAuthor": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-01-02T22:39:43.000+0000", "updated": "2014-01-02T22:39:43.000+0000" }, { "id": "286846", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Was able to reproduce this issue. Couple of notes:\n\n1. This error could apply to many modules and is not specific to the sqlcipher module.\n2. I was unable to successfully use the sqlcipher app with either 3.1.3 or 3.2.0, however I fixed this issue so that now the libs are included and both 3.1.3 and 3.2.0 have the same error message\n\nMaster pull request: https://github.com/appcelerator/titanium_mobile/pull/5191\n3.2.x pull request: https://github.com/appcelerator/titanium_mobile/pull/5192", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2014-01-07T00:06:01.000+0000", "updated": "2014-01-07T00:06:01.000+0000" }, { "id": "287524", "author": { "name": "sdowse", "key": "sdowse", "displayName": "Samuel Dowse", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tested On:\nMac OSX 10.9.1\nTitanium Studio, build: 3.2.1.201401081514\nTitanium SDK, build: 3.2.0.GA\nTitanium SDK, build: 3.2.1.v20140108194846\nTitanium SDK, build: 3.3.0.v20140108194850\nCLI: 3.2.1-beta\nAlloy: 1.3.1-beta2\n\nRan through the testing process with [~cbarber]\nUsing his steps I have discovered the following.\n\nThe .so files from the module are correctly placed in the right folder location within the packaged .apk file.\nNo errors are thrown while installing and running the .apk to a Nexus 4 running 4.2.", "updateAuthor": { "name": "sdowse", "key": "sdowse", "displayName": "Samuel Dowse", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-01-09T22:11:19.000+0000", "updated": "2014-01-09T22:11:19.000+0000" }, { "id": "289245", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing based on Samuel's comments above.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-01-22T17:55:06.000+0000", "updated": "2014-01-22T17:55:06.000+0000" } ], "maxResults": 9, "total": 9, "startAt": 0 } } }