[TIMOB-17680] Android: Add support for NDK 64bit
GitHub Issue | n/a |
Type | Improvement |
Priority | Medium |
Status | Closed |
Resolution | Cannot Reproduce |
Resolution Date | 2015-09-21T06:43:18.000+0000 |
Affected Version/s | Release 3.4.0 |
Fix Version/s | n/a |
Components | Android |
Labels | qe-3.4.0 |
Reporter | Priya Agarwal |
Assignee | Eric Merriman |
Created | 2014-09-11T10:43:25.000+0000 |
Updated | 2017-03-31T22:42:23.000+0000 |
Description
Getting error on installing the app if app contains module packaged using option output Location as “Mobile App Project”
*Steps to reproduce:*
1. Create Android module.
2. Create Classic Project.
3. Package android module using option “Mobile App Project” (Select the same project from drop down created in Step 2)
4. Install App on device.
{color:green}*Expected Result:*{color}
App must get installed successfully.
{color:red}*Actual Result:*{color}
App is not getting installed on device.
Getting the logs attached.
Note: Working fine with 3.3.0GA environment with ndk:android-ndk-r9d
Also working fine with 3.4.0 studio using ndk:android-ndk-r9d
Attachments
So a few notes/questions:
If you install this module to the global stash and try the same, it works?
In the log file, there are two errors:
'androidDir must be a string', duplicate of APPTS-4697
dalvikvm: dlopen("/data/app-lib/gl.classic.com-1/libk.j.h.so") failed: dlopen failed: cannot locate symbol "__cxa_end_cleanup" referenced by "libk.j.h.so"...
For the second one, if you review the log file, it looks like the application is attempting to start but doesn't. There is a message about "App successfully installed". So I question if the app actually failed to install or rather failed to start.
Did this fail with r10? I see we tested with 9d, and 10b, but there was a version 10 in between.
[~emerriman] can you assist with answering these questions?Which SDK do you use to compile the module? Which SDK do you run the app which contains this module? Due to the JNI change in [PR#5973](https://github.com/appcelerator/titanium_mobile/pull/5973), if the module is compiled against 3.4.0, then the app which contains this module won't work with SDK < 3.4.0.
See the below updates - 1) Install this module to the global stash and its working fine. 2) Application install successfully on device but fail to launch the app. 3) Tested with NDK version r10 also. Observed the same result as we got using NDK version r10b
Can you try to replicate? I honestly don't get this bug.
Cannot reproduce the issue. My steps to reproduce: 1. Create a module using titanium studio. Only target on Android platform. 2. Create a classic mobile app using titanium studio. Only target on Android platform. 3. Try to package the module but CANNOT find the option “Mobile App Project”.
[~pwang] !Screen_Shot_2014-09-12_at_2.34.54_PM.png!
1. Create a module using titanium studio. Only target on Android platform. 2. Create a classic mobile app using titanium studio. Only target on Android platform. 3. Package module with mobile app using "Mobile App Project" Works fine use ndk-r10b. Im unable to reproduce this.
I tried to repro this issue but could not. Tried several times but built fine every time without any errors. Environment: Appc Studio : 3.4.0.201409112242 Ti SDK : 3.4.0.v20140912120914 Mac OSX : 10.9.4 Alloy : 1.5.0-rc CLI - 3.4.0-rc2 Code Processor: 1.1.1 Android NDK : 10b
Thank you all for the investigation. Marking this as cannot reproduce. If you are still able to do so, please let us know the difference in steps between what we tried and what you tried.
I am able to reproduce this issue today. Did not do anything different though as far as steps are concerned. Reopening. Environment: Appc Studio : 3.4.0.201409161950 Ti SDK : 3.4.0.v20140916181713 Mac OSX : 10.9.4 Alloy : 1.5.0-rc2 CLI - 3.4.0-rc4 Code Processor: 1.1.1 Nexus 5 - android 4.4.4 Android NDK : 10b
Waiting on more information from [~hpham].
The current architecture does not support NDK 64bit, which is using a different default GCC, as well as having a new set of ABIs.
Moving this to 3.5.0, as that's approximately when we want to move to 64-bit across the board.
I can't see the problem with NDK. By creating a new module, Titanium Studio gives us some compiled .so files in android/libs/armxx directories. Just adding this module to my project makes it fails. No need of NDK there.
[~nicorama] What version of the NDK do you have installed? .so files are files generated by the NDK: http://stackoverflow.com/questions/5669220/ndk-how-to-use-a-generated-so-library-in-another-project
[~cng], I am not seeing this issue with the latest NDK r10e & with the current live stack.
Closing ticket as "Cannot Reproduce", if you encounter any further problems please file a new ticket.