I'm using the latest 3.1.1 Appcelerator on Mountain Lion, and already created an iOS Module successfully.
However, when I use:
titanium create --platform=android --type=module --name=testmoduleandroid --id=com.mycompany.appcelerator.test --android=~/android-sdk-macosx/to create an Android module, it succeeds in the creation, but will not build with ant.
There is no build.xml in the root of the project, only under Android. There is also no build.properties, so I have generated one (it wouldn't build at all until this) to point to the correct places for NDK, SDK, Appcelerator etc.
I have Android SDK and NDK set up as per the documentation (and green tick appears in Studio against Android).
If I use 'ant' from within the android sub-folder of the project, with my build.properties in place, this is the result
Python is in the path also, and I have XCode and therefore gperf installed.C02J74WVDKQ2:android ljagger$ ant Buildfile: /Users/ljagger/Documents/Titanium_Studio_Workspace/Alfresco/testmoduleandroid/android/build.xml python.set.exec: python.check: [echo] Testing for Python [exec] Python 2.7.2 init: process.annotations: generate.v8.bindings: [java] java.io.FileNotFoundException: /Users/ljagger/Documents/Titanium_Studio_Workspace/Alfresco/testmoduleandroid/android/build/generated/json/org/appcelerator/titanium/bindings/${manifest.name}.json (No such file or directory) [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:194) [java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:771) [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:221) [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135) [java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108) [java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) [java] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [java] at java.lang.reflect.Method.invoke(Method.java:606) [java] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) [java] at org.apache.tools.ant.Task.perform(Task.java:348) [java] at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) [java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) [java] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [java] at java.lang.reflect.Method.invoke(Method.java:606) [java] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) [java] at org.apache.tools.ant.Task.perform(Task.java:348) [java] at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398) [java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) [java] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [java] at java.lang.reflect.Method.invoke(Method.java:606) [java] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) [java] at org.apache.tools.ant.Task.perform(Task.java:348) [java] at org.apache.tools.ant.Target.execute(Target.java:390) [java] at org.apache.tools.ant.Target.performTasks(Target.java:411) [java] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) [java] at org.apache.tools.ant.Project.executeTarget(Project.java:1368) [java] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) [java] at org.apache.tools.ant.Project.executeTargets(Project.java:1251) [java] at org.apache.tools.ant.Main.runBuild(Main.java:809) [java] at org.apache.tools.ant.Main.startAnt(Main.java:217) [java] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) [java] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) [java] Caused by: java.io.FileNotFoundException: /Users/ljagger/Documents/Titanium_Studio_Workspace/Alfresco/testmoduleandroid/android/build/generated/json/org/appcelerator/titanium/bindings/${manifest.name}.json (No such file or directory) [java] at java.io.FileInputStream.open(Native Method) [java] at java.io.FileInputStream.<init>(FileInputStream.java:138) [java] at java.io.FileInputStream.<init>(FileInputStream.java:97) [java] at java.io.FileReader.<init>(FileReader.java:58) [java] at org.appcelerator.kroll.annotations.generator.KrollBindingGenerator.loadBindings(KrollBindingGenerator.java:220) [java] at org.appcelerator.kroll.annotations.generator.KrollBindingGenerator.main(KrollBindingGenerator.java:310) [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [java] at java.lang.reflect.Method.invoke(Method.java:606) [java] at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217) [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152) [java] ... 34 more [java] Java Result: -1 [exec] Traceback (most recent call last): [exec] File "/Users/ljagger/Library/Application Support/Titanium/mobilesdk/osx/3.1.1.GA/module/android/bootstrap.py", line 384, in <module> [exec] main() [exec] File "/Users/ljagger/Library/Application Support/Titanium/mobilesdk/osx/3.1.1.GA/module/android/bootstrap.py", line 364, in main [exec] moduleBindings = json.load(open(moduleJSON)) [exec] IOError: [Errno 2] No such file or directory: '/Users/ljagger/Documents/Titanium_Studio_Workspace/Alfresco/testmoduleandroid/android/build/generated/json/org/appcelerator/titanium/bindings/${manifest.name}.json' [exec] Result: 1 generate.bindings: pre.compile: js.compile: ndk.build: [mkdir] Created dir: /Users/ljagger/Documents/Titanium_Studio_Workspace/Alfresco/testmoduleandroid/android/build/generated/jni [copy] Copying 1 file to /Users/ljagger/Documents/Titanium_Studio_Workspace/Alfresco/testmoduleandroid/android/build/generated [copy] Copying 1 file to /Users/ljagger/Documents/Titanium_Studio_Workspace/Alfresco/testmoduleandroid/android/build/generated/jni [mkdir] Created dir: /var/folders/7g/8_r_nv6j7_55wg7c7n5lfhch0000gp/T/ljagger/__PROJECT_SHORT_NAME_LOWER__-generated [copy] Copying 2 files to /var/folders/7g/8_r_nv6j7_55wg7c7n5lfhch0000gp/T/ljagger/__PROJECT_SHORT_NAME_LOWER__-generated [copy] Copied 3 empty directories to 1 empty directory under /var/folders/7g/8_r_nv6j7_55wg7c7n5lfhch0000gp/T/ljagger/__PROJECT_SHORT_NAME_LOWER__-generated [exec] /Users/ljagger/android-ndk-r8e/build/core/build-shared-library.mk:23: *** Android NDK: Missing LOCAL_MODULE before including BUILD_SHARED_LIBRARY in jni/Android.mk . Stop. BUILD FAILED /Users/ljagger/Library/Application Support/Titanium/mobilesdk/osx/3.1.1.GA/module/android/build.xml:326: The following error occurred while executing this line: /Users/ljagger/Library/Application Support/Titanium/mobilesdk/osx/3.1.1.GA/module/android/build.xml:281: exec returned: 2
Any ideas why this template won't build after creation?