diff --git a/Android.mk b/Android.mk
index e61aa36..90e4984 100644
--- a/Android.mk
+++ b/Android.mk
@@ -14,17 +14,6 @@
 
 LOCAL_PATH:= $(call my-dir)
 
-# Include res dir from chips
-chips_dir := ../../../frameworks/opt/chips/res
-
-#Include res dir from libraries
-appcompat_dir := ../../../$(SUPPORT_LIBRARY_ROOT)/v7/appcompat/res
-photo_dir := ../../../frameworks/opt/photoviewer/res ../../../frameworks/opt/photoviewer/appcompat/res
-gridlayout_dir := ../../../$(SUPPORT_LIBRARY_ROOT)/v7/gridlayout/res
-bitmap_dir := ../../../frameworks/opt/bitmap/res
-datetimepicker_dir := ../../../frameworks/opt/datetimepicker/res
-res_dirs := res $(appcompat_dir) $(chips_dir) $(photo_dir) $(gridlayout_dir) $(bitmap_dir) $(datetimepicker_dir)
-
 ##################################################
 # Build APK
 include $(CLEAR_VARS)
@@ -32,25 +21,34 @@
 src_dirs := src unified_src
 LOCAL_PACKAGE_NAME := UnifiedEmail
 
-LOCAL_STATIC_JAVA_LIBRARIES := libchips
-LOCAL_STATIC_JAVA_LIBRARIES += libphotoviewer_appcompat
-LOCAL_STATIC_JAVA_LIBRARIES += guava
-LOCAL_STATIC_JAVA_LIBRARIES += android-common
-LOCAL_STATIC_JAVA_LIBRARIES += android-support-v4
-LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-appcompat
-LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-gridlayout
-LOCAL_STATIC_JAVA_LIBRARIES += android-support-v13
-LOCAL_STATIC_JAVA_LIBRARIES += android-opt-bitmap
-LOCAL_STATIC_JAVA_LIBRARIES += android-opt-datetimepicker
-LOCAL_STATIC_JAVA_LIBRARIES += owasp-html-sanitizer
+LOCAL_STATIC_ANDROID_LIBRARIES := \
+    libchips \
+    libphotoviewer_appcompat \
+    android-support-compat \
+    android-support-media-compat \
+    android-support-core-utils \
+    android-support-core-ui \
+    android-support-fragment \
+    android-support-v7-appcompat \
+    android-support-v7-gridlayout \
+    android-support-v13 \
+    android-opt-bitmap \
+    android-opt-datetimepicker
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    android-support-annotations \
+    guava \
+    android-common \
+    owasp-html-sanitizer
 
 LOCAL_SDK_VERSION := current
 
 LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs)) \
         $(call all-logtags-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-LOCAL_AAPT_FLAGS := --auto-add-overlay
-LOCAL_AAPT_FLAGS += --extra-packages com.android.ex.chips:com.android.ex.photo:android.support.v7.appcompat:android.support.v7.gridlayout:com.android.bitmap:com.android.datetimepicker
+
+LOCAL_USE_AAPT2 := true
+
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
 
 LOCAL_PROGUARD_FLAG_FILES := proguard.flags
 ifeq (eng,$(TARGET_BUILD_VARIANT))
diff --git a/src/com/android/mail/utils/HelpUrl.java b/src/com/android/mail/utils/HelpUrl.java
index 46d5395..607bc98 100644
--- a/src/com/android/mail/utils/HelpUrl.java
+++ b/src/com/android/mail/utils/HelpUrl.java
@@ -70,7 +70,7 @@
         final String packageName = context.getApplicationInfo().packageName;
         try {
             final PackageInfo pi = context.getPackageManager().getPackageInfo(packageName, 0);
-            return String.valueOf(pi.versionCode);
+            return String.valueOf(pi.getLongVersionCode());
         } catch (PackageManager.NameNotFoundException e) {
             LogUtils.e(LOG_TAG, "Error finding package name for application" + packageName);
             throw new IllegalStateException("unable to determine package name for application");
diff --git a/src/com/android/mail/utils/Utils.java b/src/com/android/mail/utils/Utils.java
index 4efbccc..c4689a7 100644
--- a/src/com/android/mail/utils/Utils.java
+++ b/src/com/android/mail/utils/Utils.java
@@ -200,7 +200,7 @@
             try {
                 sVersionCode = String.valueOf(context.getPackageManager()
                         .getPackageInfo(context.getPackageName(), 0 /* flags */)
-                        .versionCode);
+                        .getLongVersionCode());
             } catch (NameNotFoundException e) {
                 LogUtils.e(Utils.LOG_TAG, "Error finding package %s",
                         context.getApplicationInfo().packageName);
diff --git a/tests/Android.mk b/tests/Android.mk
index d757c7b..07fdded 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -33,7 +33,11 @@
 LOCAL_AAPT_FLAGS := --auto-add-overlay
 LOCAL_STATIC_JAVA_LIBRARIES := android-support-test
 
-LOCAL_JAVA_LIBRARIES := android.test.mock.sdk legacy-android-test
+LOCAL_JAVA_LIBRARIES := \
+    android.test.mock.stubs \
+    android.test.runner.stubs \
+    android.test.base.stubs \
+
 
 include $(BUILD_PACKAGE)
 
