diff --git a/library/build.gradle b/library/build.gradle
index abb8c49..83cbd27 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -16,6 +16,25 @@
 
 apply plugin: 'com.android.library'
 
+def generatedResourceDir = project.file('generatedResource')
+def versionFile = new File(generatedResourceDir, 'androidsupportmultidexversion.txt')
+
+task makeVersionFile(type:Exec) {
+
+    doFirst {
+        versionFile.getParentFile().mkdirs()
+    }
+
+    outputs.files versionFile
+
+    commandLine 'sh', '-c', 'git log --format="%H" -n 1 || (echo git hash not available; exit 0)'
+    standardOutput = new ByteArrayOutputStream()
+
+    doLast {
+        versionFile.text = "git.version=" + standardOutput.toString()
+    }
+}
+
 android {
     compileSdkVersion 4
 
@@ -23,10 +42,15 @@
         minSdkVersion 4
     }
 
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_7
+        targetCompatibility JavaVersion.VERSION_1_7
+    }
+
     sourceSets {
         main {
             java.srcDirs         = ['src']
-            resources.srcDirs    = ['res']
+            resources.srcDirs    = ['res', makeVersionFile.outputs]
             res.srcDirs          = ['src']
             manifest.srcFile 'AndroidManifest.xml'
         }
@@ -38,6 +62,10 @@
     }
 }
 
+android.libraryVariants.all {
+    v -> v.getJavaCompiler().dependsOn(makeVersionFile)
+}
+
 uploadArchives {
     repositories {
         mavenDeployer {
diff --git a/version.gradle b/version.gradle
index d216a30..f9f6e1f 100644
--- a/version.gradle
+++ b/version.gradle
@@ -14,4 +14,4 @@
  * limitations under the License.
  */
 
-ext.multidexVersion = '1.0.2'
+ext.multidexVersion = '1.0.3'
