From a8db71cd677b30eeceb8147203be243099be5381 Mon Sep 17 00:00:00 2001 From: macdonst <simon.macdonald@gmail.com> Date: Thu, 20 Oct 2011 16:26:30 -0400 Subject: [PATCH 1/2] Updating to use Android 4.0 build environment --- framework/.classpath | 2 +- framework/AndroidManifest.xml | 18 +++--- framework/ant.properties | 17 ++++++ framework/build.xml | 112 ++++++++++++++++++++-------------- framework/default.properties | 2 +- framework/project.properties | 14 +++++ 6 files changed, 107 insertions(+), 58 deletions(-) create mode 100644 framework/ant.properties mode change 100755 => 100644 framework/build.xml create mode 100644 framework/project.properties diff --git a/framework/.classpath b/framework/.classpath index ff33dbc2..ae95abc5 100644 --- a/framework/.classpath +++ b/framework/.classpath @@ -4,5 +4,5 @@ <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="gen"/> <classpathentry kind="lib" path="libs/commons-codec-1.3.jar"/> - <classpathentry kind="output" path="bin"/> + <classpathentry kind="output" path="bin/classes"/> </classpath> diff --git a/framework/AndroidManifest.xml b/framework/AndroidManifest.xml index c0c6e090..73609bea 100644 --- a/framework/AndroidManifest.xml +++ b/framework/AndroidManifest.xml @@ -2,12 +2,12 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan" package="com.phonegap" android:versionName="1.1" android:versionCode="5"> <supports-screens - android:largeScreens="true" - android:normalScreens="true" - android:smallScreens="true" - android:resizeable="true" - android:anyDensity="true" - /> + android:largeScreens="true" + android:normalScreens="true" + android:smallScreens="true" + android:resizeable="true" + android:anyDensity="true" + /> <!-- android:xlargeScreens="true" screen supported only after Android-9 --> <uses-permission android:name="android.permission.CAMERA" /> @@ -31,7 +31,7 @@ <uses-feature android:name="android.hardware.camera.autofocus" /> <application android:icon="@drawable/icon" android:label="@string/app_name" - android:debuggable="true"> + android:debuggable="true"> <activity android:name=".StandAlone" android:windowSoftInputMode="adjustPan" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden"> <intent-filter> @@ -46,5 +46,5 @@ </activity> </application> - <uses-sdk android:minSdkVersion="2" /> -</manifest> + <uses-sdk android:minSdkVersion="2" /> +</manifest> \ No newline at end of file diff --git a/framework/ant.properties b/framework/ant.properties new file mode 100644 index 00000000..ee52d86d --- /dev/null +++ b/framework/ant.properties @@ -0,0 +1,17 @@ +# This file is used to override default values used by the Ant build system. +# +# This file must be checked in Version Control Systems, as it is +# integral to the build system of your project. + +# This file is only used by the Ant script. + +# You can use this to override default values such as +# 'source.dir' for the location of your java source folder and +# 'out.dir' for the location of your output folder. + +# You can also use it define how the release builds are signed by declaring +# the following properties: +# 'key.store' for the location of your keystore and +# 'key.alias' for the name of the key to use. +# The password will be asked during the build when you use the 'release' target. + diff --git a/framework/build.xml b/framework/build.xml old mode 100755 new mode 100644 index 9c9a52b8..afbc7e2f --- a/framework/build.xml +++ b/framework/build.xml @@ -9,70 +9,89 @@ </loadfile> <!-- The local.properties file is created and updated by the 'android' tool. - It contains the path to the SDK. It should *NOT* be checked in in Version - Control Systems. --> - <property file="local.properties" /> + It contains the path to the SDK. It should *NOT* be checked into + Version Control Systems. --> + <loadproperties srcFile="local.properties" /> - <!-- The build.properties file can be created by you and is never touched - by the 'android' tool. This is the place to change some of the default property values - used by the Ant rules. + <!-- The ant.properties file can be created by you. It is only edited by the + 'android' tool to add properties to it. + This is the place to change some Ant specific build properties. Here are some properties you may want to change/update: - application.package - the name of your application package as defined in the manifest. Used by the - 'uninstall' rule. source.dir - the name of the source directory. Default is 'src'. + The name of the source directory. Default is 'src'. out.dir - the name of the output directory. Default is 'bin'. + The name of the output directory. Default is 'bin'. - Properties related to the SDK location or the project target should be updated - using the 'android' tool with the 'update' action. + For other overridable properties, look at the beginning of the rules + files in the SDK, at tools/ant/build.xml - This file is an integral part of the build system for your application and - should be checked in in Version Control Systems. + Properties related to the SDK location or the project target should + be updated using the 'android' tool with the 'update' action. + + This file is an integral part of the build system for your + application and should be checked into Version Control Systems. --> - <property file="build.properties" /> - - <!-- The default.properties file is created and updated by the 'android' tool, as well - as ADT. - This file is an integral part of the build system for your application and - should be checked in in Version Control Systems. --> - <property file="default.properties" /> + <property file="ant.properties" /> <!-- We need to setup the double quote. --> <property name="dblQuote">"</property> - <!-- Custom Android task to deal with the project target, and import the proper rules. - This requires ant 1.6.0 or above. --> - <path id="android.antlibs"> - <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" /> - <pathelement path="${sdk.dir}/tools/lib/sdklib.jar" /> - <pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" /> - <pathelement path="${sdk.dir}/tools/lib/apkbuilder.jar" /> - <pathelement path="${sdk.dir}/tools/lib/jarutils.jar" /> - </path> + <!-- The project.properties file is created and updated by the 'android' + tool, as well as ADT. - <taskdef name="setup" - classname="com.android.ant.SetupTask" - classpathref="android.antlibs" /> + This contains project specific properties such as project target, and library + dependencies. Lower level build properties are stored in ant.properties + (or in .classpath for Eclipse projects). - <!-- Execute the Android Setup task that will setup some properties specific to the target, - and import the build rules files. + This file is an integral part of the build system for your + application and should be checked into Version Control Systems. --> + <loadproperties srcFile="project.properties" /> - The rules file is imported from - <SDK>/platforms/<target_platform>/templates/android_rules.xml + <!-- quick check on sdk.dir --> + <fail + message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'" + unless="sdk.dir" + /> - To customize some build steps for your project: - - copy the content of the main node <project> from android_rules.xml - - paste it in this build.xml below the <setup /> task. - - disable the import by changing the setup task below to <setup import="false" /> - This will ensure that the properties are setup correctly but that your customized - build steps are used. +<!-- extension targets. Uncomment the ones where you want to do custom work + in between standard targets --> +<!-- + <target name="-pre-build"> + </target> + <target name="-pre-compile"> + </target> + + /* This is typically used for code obfuscation. + Compiled code location: ${out.classes.absolute.dir} + If this is not done in place, override ${out.dex.input.absolute.dir} */ + <target name="-post-compile"> + </target> +--> + + <!-- Import the actual build file. + + To customize existing targets, there are two options: + - Customize only one target: + - copy/paste the target into this file, *before* the + <import> task. + - customize it to your needs. + - Customize the whole content of build.xml + - copy/paste the content of the rules files (minus the top node) + into this file, replacing the <import> task. + - customize to your needs. + + *********************** + ****** IMPORTANT ****** + *********************** + In all cases you must update the value of version-tag below to read 'custom' instead of an integer, + in order to avoid having your file be overridden by tools such as "android update project" --> - <setup /> + <!-- version-tag: 1 --> + <import file="${sdk.dir}/tools/ant/build.xml" /> + <target name="check-javascript" depends="build-javascript"> <delete dir="assets/lib"/> @@ -133,7 +152,7 @@ <!-- Build PhoneGap jar file that includes all native code, and PhoneGap JS file that includes all JavaScript code. --> - <target name="jar" depends="build-javascript, compile"> + <target name="jar" depends="build-javascript, -compile"> <jar jarfile="phonegap-${version}.jar" basedir="bin/classes" excludes="com/phonegap/R.class,com/phonegap/R$*.class"/> </target> @@ -143,5 +162,4 @@ <target name="phonegap_release" depends="build-javascript, release"> </target> - </project> diff --git a/framework/default.properties b/framework/default.properties index aa2fcdf7..d035c7c6 100644 --- a/framework/default.properties +++ b/framework/default.properties @@ -10,5 +10,5 @@ # Indicates whether an apk should be generated for each density. split.density=false # Project target. -target=android-12 +target=android-14 apk-configurations= diff --git a/framework/project.properties b/framework/project.properties new file mode 100644 index 00000000..16d0a5d9 --- /dev/null +++ b/framework/project.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "ant.properties", and override values to adapt the script to your +# project structure. + +# Indicates whether an apk should be generated for each density. +split.density=false +# Project target. +target=Google Inc.:Google APIs:9 +apk-configurations= From e26685becf8ecec56909d82934c9044c2a3c11c2 Mon Sep 17 00:00:00 2001 From: macdonst <simon.macdonald@gmail.com> Date: Thu, 20 Oct 2011 16:48:16 -0400 Subject: [PATCH 2/2] Fixing Project Properties file --- framework/project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/project.properties b/framework/project.properties index 16d0a5d9..247ca66e 100644 --- a/framework/project.properties +++ b/framework/project.properties @@ -10,5 +10,5 @@ # Indicates whether an apk should be generated for each density. split.density=false # Project target. -target=Google Inc.:Google APIs:9 +target=android-14 apk-configurations=