Guy
Guy

Reputation: 6522

Binary XML file line Error inflating class fragment

I haven't been working on this appliaction for a while and as far as I'm concerned it was working the last time I checked. And now after a few eclipse reinstalls etc. I get this error:

11-05 23:42:12.777: E/AndroidRuntime(18247): FATAL EXCEPTION: main
11-05 23:42:12.777: E/AndroidRuntime(18247): java.lang.RuntimeException: Unable to start activity ComponentInfo{si.dvanadva.evanturist/si.dvanadva.evanturist.MainActivity}: android.view.InflateException: Binary XML file line #96: Error inflating class fragment
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.os.Looper.loop(Looper.java:137)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.app.ActivityThread.main(ActivityThread.java:5103)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at java.lang.reflect.Method.invokeNative(Native Method)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at java.lang.reflect.Method.invoke(Method.java:525)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at dalvik.system.NativeStart.main(Native Method)
11-05 23:42:12.777: E/AndroidRuntime(18247): Caused by: android.view.InflateException: Binary XML file line #96: Error inflating class fragment
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.app.Activity.setContentView(Activity.java:1895)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at si.dvanadva.evanturist.MainActivity.onCreate(MainActivity.java:258)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.app.Activity.performCreate(Activity.java:5133)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
11-05 23:42:12.777: E/AndroidRuntime(18247):    ... 11 more
11-05 23:42:12.777: E/AndroidRuntime(18247): Caused by: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value.  Expected 4030500 but found 0.  You must have the following declaration within the <application> element:     <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.google.android.gms.common.GooglePlayServicesUtil.n(Unknown Source)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.google.android.gms.maps.internal.q.v(Unknown Source)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.google.android.gms.maps.internal.q.u(Unknown Source)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.google.android.gms.maps.MapsInitializer.initialize(Unknown Source)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.google.android.gms.maps.SupportMapFragment$b.cE(Unknown Source)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.google.android.gms.maps.SupportMapFragment$b.a(Unknown Source)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.google.android.gms.dynamic.a.a(Unknown Source)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.google.android.gms.dynamic.a.onInflate(Unknown Source)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:279)
11-05 23:42:12.777: E/AndroidRuntime(18247):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
11-05 23:42:12.777: E/AndroidRuntime(18247):    ... 22 more

Now I can see that I need to add this to manifest file:

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

But why? I never had this in manifest before and app worked great.

Now the second problem is that IF I put this in manifest file, my app still crashes but I get different kind of logcat file:

11-05 23:51:25.144: E/AndroidRuntime(19384): FATAL EXCEPTION: main
11-05 23:51:25.144: E/AndroidRuntime(19384): java.lang.NullPointerException
11-05 23:51:25.144: E/AndroidRuntime(19384):    at si.dvanadva.evanturist.MainActivity.setMarkers(MainActivity.java:443)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at si.dvanadva.evanturist.MainActivity.onItemSelected(MainActivity.java:542)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at android.widget.AdapterView.fireOnSelected(AdapterView.java:892)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at android.widget.AdapterView.access$200(AdapterView.java:49)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:860)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at android.os.Handler.handleCallback(Handler.java:730)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at android.os.Handler.dispatchMessage(Handler.java:92)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at android.os.Looper.loop(Looper.java:137)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at android.app.ActivityThread.main(ActivityThread.java:5103)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at java.lang.reflect.Method.invokeNative(Native Method)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at java.lang.reflect.Method.invoke(Method.java:525)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-05 23:51:25.144: E/AndroidRuntime(19384):    at dalvik.system.NativeStart.main(Native Method)

Upvotes: 1

Views: 559

Answers (1)

Simon Forsberg
Simon Forsberg

Reputation: 13351

The reason for the first error is because you are using a newer version of Google Play Services API, which requires that line in the XML.

The second error is because one of your variables is null at line 443 in your class MainActivity. You can read the question about What is a Null Pointer Exception? if you are unsure what a NullPointerException is and how to solve it.

Upvotes: 1

Related Questions