[TIMOB-8800] Android: Failure building with Java 1.7.0 (Java 7)
GitHub Issue | n/a |
---|---|
Type | Story |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2012-05-08T12:35:09.000+0000 |
Affected Version/s | Release 2.1.0 |
Fix Version/s | Release 2.1.0, Sprint 2012-10 Core |
Components | Android |
Labels | core |
Reporter | Allen Yeung |
Assignee | Bill Dawson |
Created | 2012-04-19T14:04:03.000+0000 |
Updated | 2017-03-08T00:41:48.000+0000 |
Description
We currently do not check to make sure the user has jdk 1.6.0 installed in our build scripts. We should add this feature since there are known issues with using jdk 1.7.0 (at least for windows). We need to determine the following requirements in this task, and then notify studio in regards to these new requirements.
- Minimum/Maximum version of jdk required
- Where to grab this particular version of sdk (from oracle?)
- Narrow down if the jdk requirements affect ALL platforms (linux,osx, windows). We know there are issue with jdk 1.7.0 in windows, but this needs to be verified in other platforms
- Mechanism for reporting this error from the build scripts (ideally studio would be able to take this error and prompt the user to resolve it accordingly in studio)
After this ticket has been resolved, we should file a separate ticket on the studio side for them to take action (and probably sync up with them regarding the requirements).
Just a few notes for myself... * On my Lion system,
java -version
andjavac -version
both report 1.6.0_31. That's the Apple-supplied update for the recent [Flashback scare](http://support.apple.com/kb/HT5242). * Oracle's JDK download site: http://www.oracle.com/technetwork/java/javase/downloads/index.html * The latest JDK for "Java SE 6" (as-of this moment) is 1.6.0_32. The jump from _31 to _32 does not appear to be related to a security bug. * The latest JDK, period, is for "Java SE 7u4", and the latest JDK therein is thus 1.7.0_4. To test/use this on a Mac, you'd have to get it manually. * In OS X, use Applications -> Utilities -> Java Preferences to set the preferred JVM.I've changed the title to reflect the original problem, and since I decided to go about this ticket in such a way as to support Java 7.
Testing Notes
There are basically two phases of testing.The "Did Bill Break Anything" Phase
* Build the SDK (i.e.,scons
) with Java 1.6 (what you likely have on your system, so basically you're testing that I didn't break what already worked.) * Build and test a Titanium Mobile project in Android with Java 1.6. * Rinse and repeat for Ubuntu and Windows 7. Then ...The "Java 7" Phase
* Download and install JDK for Java 7 (i.e., 1.7 in the weird world of Java numbers) http://www.oracle.com/technetwork/java/javase/downloads/index.html. * Build (i.e.,scons
) the sdk with jdk 1.7. * Build and test a Titanium Mobile project in Android with jdk 1.7. * Rinse and repeat on Ubuntu and Windows 7. NOTE: Testing JDK 1.7 in OS X means using Applications -> Utilities -> Java Preferences to set the preferred to Java 7 before building and testing. In Windows and Ubuntu it means setting the JAVA_HOME environment variable to point to the jdk 1.7 folder.After this is ready, we should turn to the Studio team and let them know they can trust prereq.py, perhaps even on their Preferences page for Titanium Mobile (i.e., to give a warning if prereq.py exits with exit code !=0).
Closing ticket as resolved.