title: Lollipop throwing Incorrect Signature for SupportMapFragment
body: <p>I have an android app that shows a map via a SupportMapFragment. The app was running fine for the past several months until just recently I upgraded my phone from 4.4.4 to 5.0 (via the official OTA update). Now the app crashes and I get the following stack trace:</p>
  
  <pre><code>11-18 12:51:49.699  12594-12594/com.foo.bar E/AndroidRuntime﹕ FATAL EXCEPTION: main
      Process: com.foo.bar, PID: 12594
      java.lang.RuntimeException: Unable to start activity ComponentInfo{com.foo.bar/com.foo.bar.CallActivity}: android.view.InflateException: Binary XML file line #89: Error inflating class fragment
              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
              at android.app.ActivityThread.access$800(ActivityThread.java:144)
              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
              at android.os.Handler.dispatchMessage(Handler.java:102)
              at android.os.Looper.loop(Looper.java:135)
              at android.app.ActivityThread.main(ActivityThread.java:5221)
              at java.lang.reflect.Method.invoke(Native Method)
              at java.lang.reflect.Method.invoke(Method.java:372)
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
       Caused by: android.view.InflateException: Binary XML file line #89: Error inflating class fragment
              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
              at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
              at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
              at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:377)
              at android.app.Activity.setContentView(Activity.java:2144)
              at com.foo.bar.CallActivity.onCreate(CallActivity.java:89)
              at android.app.Activity.performCreate(Activity.java:5933)
              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
              at android.app.ActivityThread.access$800(ActivityThread.java:144)
              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
              at android.os.Handler.dispatchMessage(Handler.java:102)
              at android.os.Looper.loop(Looper.java:135)
              at android.app.ActivityThread.main(ActivityThread.java:5221)
              at java.lang.reflect.Method.invoke(Native Method)
              at java.lang.reflect.Method.invoke(Method.java:372)
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
       Caused by: java.lang.SecurityException: Incorrect signature
              at org.apache.harmony.security.utils.JarUtils.verifySignature(JarUtils.java:223)
              at java.util.jar.JarVerifier.verifyCertificate(JarVerifier.java:294)
              at java.util.jar.JarVerifier.readCertificates(JarVerifier.java:268)
              at java.util.jar.JarFile.getInputStream(JarFile.java:380)
              at libcore.net.url.JarURLConnectionImpl.getInputStream(JarURLConnectionImpl.java:222)
              at java.net.URL.openStream(URL.java:470)
              at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:444)
              at java.lang.Class.getResourceAsStream(Class.java:1334)
              at com.google.l.a.a.a.a(Unknown Source)
              at com.google.l.a.a.a.a(Unknown Source)
              at com.google.maps.api.android.lib6.b.e.&lt;init&gt;(Unknown Source)
              at com.google.maps.api.android.lib6.b.e.&lt;init&gt;(Unknown Source)
              at com.google.maps.api.android.lib6.b.e.a(Unknown Source)
              at com.google.maps.api.android.lib6.c.dm.a(Unknown Source)
              at com.google.maps.api.android.lib6.c.dw.a(Unknown Source)
              at com.google.maps.api.android.lib6.c.v.a(Unknown Source)
              at com.google.maps.api.android.lib6.c.u.a(Unknown Source)
              at com.google.android.gms.maps.internal.u.onTransact(SourceFile:107)
              at android.os.Binder.transact(Binder.java:380)
              at com.google.android.gms.maps.internal.IMapFragmentDelegate$a$a.onCreateView(Unknown Source)
              at com.google.android.gms.maps.SupportMapFragment$a.onCreateView(Unknown Source)
              at com.google.android.gms.dynamic.a$4.b(Unknown Source)
              at com.google.android.gms.dynamic.a.a(Unknown Source)
              at com.google.android.gms.dynamic.a.onCreateView(Unknown Source)
              at com.google.android.gms.maps.SupportMapFragment.onCreateView(Unknown Source)
              at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
              at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:920)
              at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
              at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1206)
              at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2159)
              at android.support.v4.app.FragmentActivity.onCreateVie
  </code></pre>
  
  <p>Here is my layout:</p>
  
  <pre><code>&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:id="@+id/myLayout"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:paddingBottom="@dimen/activity_vertical_margin"
      android:paddingLeft="@dimen/activity_horizontal_margin"
      android:paddingRight="@dimen/activity_horizontal_margin"
      android:paddingTop="@dimen/activity_vertical_margin"
      tools:context=".CallActivity"
      android:orientation="vertical"
      android:background="#FFFFFF" &gt;
  
          &lt;fragment xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/map"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              class="com.google.android.gms.maps.SupportMapFragment" /&gt;
  
  &lt;/LinearLayout&gt;
  </code></pre>
  
  <p>here's my gradle file:</p>
  
  <pre><code>apply plugin: 'com.android.application'
  
  android {
      compileSdkVersion 21
      buildToolsVersion "21.1.1"
  
      defaultConfig {
          applicationId "com.foo.bar"
          minSdkVersion 9
          targetSdkVersion 21
          versionCode 126
          versionName "1.0.126"
      }
  
      buildTypes {
          release {
              runProguard false
              proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-project.txt'
          }
      }
  }
  
  dependencies {
      compile 'com.android.support:support-v4:21.0.+'
      compile 'com.google.android.gms:play-services:6.1.71'
      compile fileTree(dir: 'libs', include: '*.jar')
  }
  </code></pre>
  
  <p>and here is the relevant bits of the activity:</p>
  
  <pre><code>public class CallActivity extends FragmentActivity {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_call); // this is line 89 (the line referenced in the stack trace)
          ...
  </code></pre>
  
  <p>The same app still works fine on another phone with an older version of android. And if I remove the fragment from the layout, it runs without crashing on my phone with 5.0 (of course without the map), so I'm fairly certain it's the map fragment that's causing the issue.</p>
  
  <p>Has anyone else seen anything like this? Any ideas of what to try?</p>