Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-15766] Android: Samsung Galaxy 3 tablets won't load apps that contains modules

GitHub Issuen/a
TypeBug
PriorityCritical
StatusClosed
ResolutionFixed
Resolution Date2014-05-08T17:53:59.000+0000
Affected Version/sRelease 3.2.0
Fix Version/sRelease 3.2.0
ComponentsAndroid
Labelsmodule_module, qe-manualtest, triage
ReporterJason Kotchoff
AssigneePedro Enrique
Created2013-10-23T05:49:19.000+0000
Updated2014-08-07T21:40:06.000+0000

Description

Titanium-built apps that include modules are crashing on startup on a Samsung Galaxy Tablet 3.
ADB indicates that there is an UnsatisfiedLinkError whenever an app tries to load a module
eg.
10-10 04:42:33.282: W/dalvikvm(19548): threadid=11: thread exiting with uncaught exception (group=0x41a96e10)
10-10 04:42:33.282: E/TiApplication(19548): (KrollRuntimeThread) [319,707] Sending event: exception on thread: KrollRuntimeThread msg:java.lang.UnsatisfiedLinkError: Couldn't load ti.inappbilling from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.stocklight.stocklightapp-1.apk,libraryPath=/data/app-lib/com.stocklight.stocklightapp-1]: findLibrary returned null; Titanium 3.1.3,2013/09/18 12:01,222f4d1
10-10 04:42:33.282: E/TiApplication(19548): java.lang.UnsatisfiedLinkError: Couldn't load ti.inappbilling from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.stocklight.stocklightapp-1.apk,libraryPath=/data/app-lib/com.stocklight.stocklightapp-1]: findLibrary returned null
10-10 04:42:33.282: E/TiApplication(19548): at java.lang.Runtime.loadLibrary(Runtime.java:365)
10-10 04:42:33.282: E/TiApplication(19548): at java.lang.System.loadLibrary(System.java:535)
10-10 04:42:33.282: E/TiApplication(19548): at org.appcelerator.kroll.runtime.v8.V8Runtime.loadExternalModules(V8Runtime.java:114)
10-10 04:42:33.282: E/TiApplication(19548): at org.appcelerator.kroll.runtime.v8.V8Runtime.initRuntime(V8Runtime.java:81)
10-10 04:42:33.282: E/TiApplication(19548): at org.appcelerator.kroll.KrollRuntime.doInit(KrollRuntime.java:175)
10-10 04:42:33.282: E/TiApplication(19548): at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:109)
10-10 04:42:33.282: E/AndroidRuntime(19548): FATAL EXCEPTION: KrollRuntimeThread
10-10 04:42:33.282: E/AndroidRuntime(19548): java.lang.UnsatisfiedLinkError: Couldn't load ti.inappbilling from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.stocklight.stocklightapp-1.apk,libraryPath=/data/app-lib/com.stocklight.stocklightapp-1]: findLibrary returned null
10-10 04:42:33.282: E/AndroidRuntime(19548): at java.lang.Runtime.loadLibrary(Runtime.java:365)
10-10 04:42:33.282: E/AndroidRuntime(19548): at java.lang.System.loadLibrary(System.java:535)
10-10 04:42:33.282: E/AndroidRuntime(19548): at org.appcelerator.kroll.runtime.v8.V8Runtime.loadExternalModules(V8Runtime.java:114)
10-10 04:42:33.282: E/AndroidRuntime(19548): at org.appcelerator.kroll.runtime.v8.V8Runtime.initRuntime(V8Runtime.java:81)
10-10 04:42:33.282: E/AndroidRuntime(19548): at org.appcelerator.kroll.KrollRuntime.doInit(KrollRuntime.java:175)
10-10 04:42:33.282: E/AndroidRuntime(19548): at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:109)
This is relevant to apps built using 3.0.2.GA and 3.1.3.GA eg. 'TeamApp', 'StockLight', 'What should I wear.com.au' Some older apps that were been built on older versions of titanium seem to still work eg. 'DiviMe' in the Google Play store

Attachments

FileDateSize
log.txt2013-11-21T23:50:50.000+000021453

Comments

  1. Reilly 2013-11-01

    Hi, Im also seeing this issue. I have done some testing and discovered that the issue only occurs when the app is built for "dist-playstore". That is to say, my app works fine when built with "target device" but not "target dist-playstore". Just to be sure it wasn't a signing issue, I also took the unsigned APK from "target device" and (jar)signed it with our distribution certificate (ie for Google Play). This works fine. Any support on this issue would be very welcome. Regards Reilly
  2. Jason Kotchoff 2013-11-18

    Shak, could we please get a response from Appcelerator on this? We are getting feedback from users of the Galaxy tab 3 who are experiencing the same issue.
  3. Jason Kotchoff 2013-11-18

    The same error has now been recorded and submitted as google play bug reports on a number of devices: Nov 16, 2013 - DROID RAZR i (smi) Nov 15, 2013 - Galaxy Tab3 10.1 (santos10wifi) Nov 15, 2013 - ASUS MeMo Pad ME302C (ME302C) Oct 28, 2013 - Galaxy Tab3 10.1 (santos10wifi)
  4. Shak Hossain 2013-11-19

    Jason, Thanks for reporting this. While look into the log files, it would be nice to have a test case from you that demonstrates the crash. Please let me know if you can send us such test case. Regards,
  5. Jason Kotchoff 2013-11-19

    Hi Shak. Any titanium app that uses a module (any module) which is built and distributed using 3.1.3.GA won't open on these devices ie. it will crash on startup. ie. tiapp.xml: ti.inappbilling analytics.google app.js: Ti.API.debug("Hello World");
  6. Shak Hossain 2013-11-19

    Jason, Have you tried any other device than tablet? We tested your sample (and default samples) on Adroid 4.2 & 4.4 devices. We did not notice any crash with them. Thanks,
  7. Jason Kotchoff 2013-11-19

    The same titanium code runs fine on other Android devices, we have tested it on at least half a dozen different phones and tablets internally and have clients using it on thousands of other Android devices through the play store. It seems this is an architectural showstopper for titanium with certain types of hardware, specifically the Samsung Galaxy Tablet 3. You can test this bug very easily by trying to run a titanium app that has modules on any Samsung Galaxy Tablet 3. The crash logs above seem to indicate that this might also be an issue for the following types of devices: DROID RAZR i (smi) ASUS MeMo Pad ME302C (ME302C) however we haven't got access to those models to test with.
  8. Eric Wieber 2013-11-19

    Jason, We tested apps with modules on a Galaxy S2 Tablet and a DROID RAZR. Both devices were able to install and run the apps normally. We will test with the S3 tablet later this week and keep you posted with our test results. These tests were with Ti SDK 3.1.3.GA, Android SDK 4.4. Regards
  9. Eric Wieber 2013-11-22

    Jason, An update to my previous comment: We were able to get a Galaxy Tablet 3 in house and test multiple apps with modules. We were able to reproduce your issue. Not every app with a module crashed at launch, but when we saw the crash it had the same exception that you did. We do not need a sample project and are currently working on a fix for this. We will keep you up do date on any developments and will get the fix live as soon as possible. Thank you for your patience while we work through this issue.
  10. Jason Kotchoff 2013-11-22

    Thanks Eric, much appreciated!
  11. Pedro Enrique 2013-11-22

    After some research, here are my findings: In Ti SDK 3.1.3.X we use the older python scripts to package the app. These scrips do not copy the titanium *.so required libraries to the /lib/x86 folder in the apk. In Ti SDK 3.2.X we use the new node.js Ti CLI to package the app. These scripts DO copy those required files over and the app runs fine. Conclusion, this fails in 3.1.X due to lack of x86 support but works as expected in 3.2.X.
  12. Pedro Enrique 2013-11-23

    Fixed in 3.2.0
  13. Samuel Dowse 2013-11-26

    +Verified fixed on:+ Mac OSX 10.9 Mavericks Titanium Studio, build: 3.2.0.201311221859 Titanium SDK, build: 3.2.0.v20131125114848 CLI: 3.2.0-alpha3 Alloy: 1.3.0-alpha6 Android Device: Samsung Galaxy 3 Tablet (4.2.2) Create a default Titanium Classic project and installed 8 different modules at the same time. 6 modules were Android compatible and 2 weren't (Just in case it could throw an error). Application ran fine with all the modules installed and ran fine without modules installed. Closing.

JSON Source