Steps to reproduce
Upgraded Titanium Studio to 3.2.0 GA from 3.1.3 GA, including upgrade for Alloy to 1.3.0.
Created new Mobile App Project - Default Alloy Project.
Attempted to Run the project on an Android device. Received the following error during project build:
[INFO] : Alloy compiler completed successfully
[INFO] : Processing JavaScript files
[INFO] : Encrypting JavaScript files: C:\Users\rsam\AppData\Roaming\Titanium\mobilesdk\win32\3.2.0.GA\android\titanium_prep.win32.exe "com.smartkom.test2" "C:\Android\appcelerator\Test2\build\android\assets" "app.js" "alloy/backbone.js" "alloy/CFG.js" "alloy/constants.js" "alloy/controllers/BaseController.js" "alloy/controllers/index.js" "alloy/styles/index.js" "alloy/sync/localStorage.js" "alloy/sync/properties.js" "alloy/sync/sql.js" "alloy/underscore.js" "alloy/widget.js" "alloy.js" "_app_props_.json"
[INFO] : Encrypting JavaScript files: C:\Users\rsam\AppData\Roaming\Titanium\mobilesdk\win32\3.2.0.GA\android\titanium_prep.win64.exe "com.smartkom.test2" "C:\Android\appcelerator\Test2\build\android\assets" "app.js" "alloy/backbone.js" "alloy/CFG.js" "alloy/constants.js" "alloy/controllers/BaseController.js" "alloy/controllers/index.js" "alloy/styles/index.js" "alloy/sync/localStorage.js" "alloy/sync/properties.js" "alloy/sync/sql.js" "alloy/underscore.js" "alloy/widget.js" "alloy.js" "_app_props_.json"
[ERROR] : Failed to encrypt JavaScript files
[ERROR] Application Installer abnormal process termination. Process exit value was 1
Note: this procedure worked fine on my system prior to upgrading Titanium/Alloy. Also my previously developed apps, which worked fine, are demonstrating the same behavior now on the new Titanium/Alloy.
Workaround
Please try downloading the .zip file attached to the ticket (titanium_prep-mt.zip) and unzipping it into:
C:\path\to\Titanium\mobilesdk\win32\3.2.0.GA\android
Just upgraded this morning. Exact same issue here. Restarted Titanium Studio, my machine, etc. to no avail. I also have the same response from ti info -t jdk as Sam. This is big. Please figure this out immediately. EDIT: I'm using Windows 7, SP1. Java version is 1.7.0_45. I have the same error message. Oops? http://docs.appcelerator.com/titanium/3.0/#!/guide/Installing_Oracle_JDK
Hi All, If you are experiencing this issue, please make very clear:
Which version of Windows (version, 32-bit or 64-bit)
Which version of Java (version, 32-bit or 64-bit)
+1 to Ingo's comment above. We need to know EXACTLY which version AND architecture of Java AND Windows we're dealing with. Also suspect is the last few lines of the log file:
It should say encrypting using the 32-bit version, then say 32-bit failed, trying 64-bit. In other words, the [DEBUG] 32-bit titanium prep failed, trying again using 64-bit should be printed out above the 64-bit call. Is Studio doing this?
[~vbullinger] Which version of 64-bit windows, and which version of Java?
Ingo Muschenetz Does the version matter? The JDK guide here http://docs.appcelerator.com/titanium/3.0/#!/guide/Installing_Oracle_JDK says to use 1.6. I have 1.7. Is this necessary? Is this my problem?
1.7 should actually work now. You could _try_ 1.6 to see if that helps.
Neither 1.6 or 1.7 worked. They gave me the exact same error message: [ERROR] : Failed to encrypt JavaScript files [ERROR] Application Installer abnormal process termination. Process exit value was 1 The 1.6 version was 32-bit, as the guide says to use. The 1.7 version was 64-bit.
Vince, you don't happen to have another machine around with a different version of Windows, do you? We're wondering if it's Windows 7.
I'll try on my personal machine instead of my work laptop. I can tell you that it works just fine on a Mac, though. I'll edit this when it's finished. EDIT: on my personal Windows 8 machine, I was able to get a brand new app to deploy to the emulator but not to my phone. I tried upgrading one app, but it won't deploy to either the emulator or my phone. But it says it failed to package the app, nothing about encrypting JavaScript files. The emulator acts like it's about to run, but it never does load up the app.
Same issue: [INFO] : Encrypting JavaScript files: [ERROR] : Failed to encrypt JavaScript files [ERROR] Application Installer abnormal process termination. Process exit value was 1
Hi All, We've had real trouble reproducing this. it must be something we're missing in a configuration. There are four variables:
Version of Windows
32 vs. 64-bit Windows
32 vs. 64-bit version of Java
Java 1.6 vs 1.7
To make this scientific, when commenting on this ticket, please tell us the followingVersion of Windows
Which line from the list below applies to you:
Configurations:32-bit Windows, 32-bit Java, Java 1.6
32-bit Windows, 32-bit Java, Java 1.7
64-bit Windows, 32-bit Java, Java 1.6
64-bit Windows, 64-bit Java, Java 1.6
64-bit Windows, 32-bit Java, Java 1.7
64-bit Windows, 64-bit Java, Java 1.7
An example response might be: Windows 7, configuration #2 We'll use this to generate a matrixI am having the same issue with: Window 7 Professional SP1, configuration #4
One question to the group: If you create a brand-new Android project, does this happen as well? Or is it only with existing projects?
I'm not sure if my issue applies here.. I've updated Titanium yesterday and created new workspace and new project "TestApp" (Default Alloy App) Windows 8.1 Enterprise N, configuration #5 Titanium Studio Console Log when building from the "run on device" feature: [INFO] : Alloy compiler completed successfully [INFO] : Processing JavaScript files [INFO] : Encrypting JavaScript files: C:\Users\Senad\AppData\Roaming\Titanium\mobilesdk\win32\3.2.0.GA\android\titanium_prep.win32.exe "ba.genijalno.testapp" "C:\Users\Senad\repos\test\TestApp\build\android\assets" "app.js" "alloy/backbone.js" "alloy/CFG.js" "alloy/constants.js" "alloy/controllers/BaseController.js" "alloy/controllers/index.js" "alloy/styles/index.js" "alloy/sync/localStorage.js" "alloy/sync/properties.js" "alloy/sync/sql.js" "alloy/underscore.js" "alloy/widget.js" "alloy.js" "_app_props_.json" [INFO] : Encrypting JavaScript files: C:\Users\Senad\AppData\Roaming\Titanium\mobilesdk\win32\3.2.0.GA\android\titanium_prep.win64.exe "ba.genijalno.testapp" "C:\Users\Senad\repos\test\TestApp\build\android\assets" "app.js" "alloy/backbone.js" "alloy/CFG.js" "alloy/constants.js" "alloy/controllers/BaseController.js" "alloy/controllers/index.js" "alloy/styles/index.js" "alloy/sync/localStorage.js" "alloy/sync/properties.js" "alloy/sync/sql.js" "alloy/underscore.js" "alloy/widget.js" "alloy.js" "_app_props_.json" [ERROR] : Failed to encrypt JavaScript files [ERROR] Application Installer abnormal process termination. Process exit value was 1 These are the result when building from CLI (titanium build --platform android -T device): [INFO] Encrypting JavaScript files: C:\Users\Senad\AppData\Roaming\Titanium\mobilesdk\win32\3.2.0.GA\android\titanium_prep.win32.exe "ba.genijalno.testapp" "C:\Users\Senad\repo p.js" "alloy/backbone.js" "alloy/CFG.js" "alloy/constants.js" "alloy/controllers/BaseController.js" "alloy/controllers/index.js" "alloy/styles/index.js" "alloy/sync/localStorage ync/sql.js" "alloy/underscore.js" "alloy/widget.js" "alloy.js" "_app_props_.json" [DEBUG] 32-bit titanium prep failed, trying again using 64-bit [INFO] Encrypting JavaScript files: C:\Users\Senad\AppData\Roaming\Titanium\mobilesdk\win32\3.2.0.GA\android\titanium_prep.win64.exe "ba.genijalno.testapp" "C:\Users\Senad\repo p.js" "alloy/backbone.js" "alloy/CFG.js" "alloy/constants.js" "alloy/controllers/BaseController.js" "alloy/controllers/index.js" "alloy/styles/index.js" "alloy/sync/localStorage ync/sql.js" "alloy/underscore.js" "alloy/widget.js" "alloy.js" "_app_props_.json" [ERROR] Failed to encrypt JavaScript files [ERROR] Unable to locate a valid libjvm.dll. Thanks,
PS. The new TestApp and my other existing app deploy fine on the Android Emulator (Intel Atom x86, API 18, WVGA800) Thanks
@Ingo: The same error exists for both new and old projects.
same error. env: 64-bit Windows, 32-bit Java, Java 1.6
Hi All, If you _can_ create a new project and then deploy it to device, then you have a different error, or TIMOB-16077. Please follow along there. This ticket will be reserved for only those people who can't get a new project to compile. If you have an issue like "libjvm.dll can't be found", please try setting your java path on the command line:
with the path being the root of the JDK directory. Then re-run your build.
Hi Ingo, TIMOB-16077 doesn't apply to me because I'm getting this error on a newly created project as well. I've tried setting the java.home via CLI to my 32b Java and I still got the same problem. However, once I've set the ti config java.home to my 64b Java I was able to deploy the new app and my existing app as well. Solution (for my case at least): - Windows 8.1 Enterprise N, config #5 (32b Java) doesn't compile/deploy for device - Windows 8.1 Enterprise N, config #6 (64b Java) compiles and deploys Thanks for the tip, maybe it helps someone else too!
64-bit Windows ,32-bit or 64-bit java , 1.6 or 1.7
Hi Colleagues, I got the same issue, a simple workaround, to enable testing on device is to modify c:\Users\vladi\AppData\Roaming\Titanium\mobilesdk\win32\3.2.0.GA\android\cli\commands\_build.js line 905, and set encryptJS to false case 'test': this.minifyJS = true; >>>> this.encryptJS = false; this.allowDebugging = true; this.allowProfiling = true; this.includeAllTiModules = false; this.proguard = false;
A reminder:
If you create a new project and run into this issue, this ticket (TIMOB-16073) is for you
If you create a new project and it works, but an existing project fails, then your ticket is TIMOB-16077
If you get the error "libjvm.dll can't be found" (or similar), try setting the path on the command line: 'ti config java.home c:\path\to\jdk'
Hi Vladimir S, Thanks for your simple workaround. It is working for me now.
Following up: a new app won't work, an old app won't work. Won't work on Windows 8 or 7 - both 64-bit, with JDK 32-bit 1.6 or 64-bit 1.7. Mac works just fine. It's not my Mac, however. I'm going to go with Vladimir's work around. I'll demand a Mac of my own at work. I'm supremely disappointed in not only what's happened since the upgrade - which I had no clue would be major - but the response. All the responses are "HEY THIS IS SUPER IMPORTANT!!! WHAT'S YOUR OS, JDK, ETC?" and "GO TO THIS OTHER THREAD!" And no actual ideas whatsoever. Vladimir took it upon himself to give us a temporary workaround. I might try a complete uninstall, install and code port, which is ridiculous.
Vince, I am sorry that you have been unhappy with the response. Not only have we been unable to reproduce this yet ourselves, we don't yet understand which set of configurations reliably cause the issue. If you take three versions of Windows x 6 possible configurations, that gives at least 18 different versions of windows to try. Needless to say, we've had multiple people test on Windows 7, Windows 8 and 8.1, with 32 bit and 64-bit configurations, and using Java 1.6 and 1.7. No luck as of yet. There are multiple issues here, and my first job is to try and figure out who is having what. It can be challenging with a number of people all on the same ticket. My goal is the figure out who is experiencing what issue, which (if any) workarounds work, and make sure people know which ticket to watch depending on their symptoms. Modifying the SDK code is our last resort, and is only the most temporary of workarounds. I would be curious to know if 'ti config java.home c:\path\to\jdk' works for people.
Hi, i played a bit more with procmon, to see what the tool was searching for. Finally there is a REAL Solution :) The problems I found was 1. Missing "msvcr110.dll". Symptom - titanium fails with "Failed to encrypt JavaScript files", but does not mention libjvm.dll. Workaround: Install Visual C++ Redistributable for Visual Studio 2012 from - here http://www.microsoft.com/en-us/download/details.aspx?id=30679#. You can install 32 or 64 bit, depending on the JVM you are using (i installed both) 2. Incorrect JAVA_HOME - Symptom - Encryption fails with "Unable to locate a valid libjvm.dll.", Solution/Workaround? - seems like ti config java.home does not work - at least not in my environment, and at least not for titanium_prep.win*.exe. It searches the Environment Var JAVA_HOME. When i set it to the correct location it works. titanium_prep.win32.exe works if javA_home points to 32 bit jdk, and titanium_prep.win64.exe works if it points to 64 bit jvm. Titanium build tries both, so in case the java_home is correctly set - it works @Ingo - i hope this hints will help you to make it running in all environments. I also appreciate your efforts for solving this during the holidays :)
@Ingo: I ran further testing and wanted to report my results: 1. Uninstalled Titanium Studio (The installer did not work, but that is another issue). 2. Removed all installations of Java on my system. 3. Installed Titanium Studio 3.2.0. The installer informed me that Java was needed and it would install it for me. 4. After Titanium Studio successfully installed, I tried deploying to several Android devices, and I received the same "encryption" error. 5. Looking at what was installed by the Titanium Studio installation, I see that Java SE Development Kit 7 Update 40 (32-bit) was installed in C:\Program Files (x86)\Java\jdk1.7.0_40 by the installer. That makes me now configuration # 5 from above. I commented out the encryption line per Vladimir S suggestion above, and I am now able to deploy to Android devices. Thanks Vladimir!!! I am able to continue with my development, and I will monitor this thread for the official fix. Thanks again all of you for working on this issue. Sam
Great job, Vladimir! I had looked at the source code myself, but saw several instances of "Failed to encrypt JavaScript files," so I decided not to go down that rabbit hole. But amazing job on your point for finding it and fleshing out a solution that worked for me. I wonder what piece of that install Appcelerator truly needs and what should be done about it as far as an update is concerned...
If you have the following symptoms:
A new project fails with the encryption error (same as an existing project)
Setting either your JAVA_HOME or java.home configuration variables don't work
Please try downloading the .zip file attached to the ticket (titanium_prep-mt.zip) and unzipping it into: C:\path\to\Titanium\mobilesdk\win32\3.2.0.GA\android If you previously installed a separate runtime from Microsoft, see if you can uninstall that before testing out this new version to make sure that we've actually addressed the issue.@Ingo, thank you for ur effort and fast respond on this ticket. I am able to run on device successfully after i replace the file according to the instruction.
Same for me, thanks. Seems to be solved with that (titanium_prep-mt.zip).
PR to update this on master: https://github.com/appcelerator/titanium_mobile/pull/5167 3_2_X: https://github.com/appcelerator/titanium_mobile/pull/5168
Issue seems to be fixed Tested with environment: Appc-Studio: 3.2.1.201401061716 acs:1.0.11 alloy:1.3.1-beta npm:1.3.2 titanium:3.2.0 titanium-code-processor:1.1.0 Osx: Windows 8 Device:Galaxy Note(v2.3.6) using both sdk build:3.2.1.v20140106195644 and 3.3.0.v20140106195650 Tried with both classic and alloy default project and was able to build and deploy successfully on the device.
Verified the fix. We do not see any failures related to javascript & the alloy/classic app builds & runs fine on device. Closing. Environment: Appc Studio : 3.2.1.201401081616 Titanium studio : 3.2.1.201401081514 Ti SDK : 3.2.1.v20140109163246 , 3.3.0.v20140110133250 Windows 7 ,8 & 8.1 (32-bit & 64-bit) Java : 1.6.0_45 & 1.7.0_45 (32-bit & 64-bit where ever applicable) Alloy : 1.3.1-beta2 CLI - 3.2.1-beta Samsung Galaxy S4 running android 4.2.2
I got the same error, in my case the problem was a file with a very long line (100.000+ columuns)