Reputation: 1092
i am trying to do this google map v2 tutorial and i run in to a problem
i did add the google-play-services-lib to my project
runing on emulator v:4.3 APILevel:18 cpu/abi:arm
i never used fragments befor soo i think that may be the root of the problem but i cant be sure
i am geting this error:
11-04 13:35:31.572: E/AndroidRuntime(1375): FATAL EXCEPTION: main
11-04 13:35:31.572: E/AndroidRuntime(1375): java.lang.RuntimeException: Unable to start activity ComponentInfo{asaf.workfinder/asaf.workfinder.MainActivity}: android.view.InflateException: Binary XML file line #14: Error inflating class fragment
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.os.Handler.dispatchMessage(Handler.java:99)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.os.Looper.loop(Looper.java:137)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.ActivityThread.main(ActivityThread.java:5103)
11-04 13:35:31.572: E/AndroidRuntime(1375): at java.lang.reflect.Method.invokeNative(Native Method)
11-04 13:35:31.572: E/AndroidRuntime(1375): at java.lang.reflect.Method.invoke(Method.java:525)
11-04 13:35:31.572: E/AndroidRuntime(1375): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-04 13:35:31.572: E/AndroidRuntime(1375): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-04 13:35:31.572: E/AndroidRuntime(1375): at dalvik.system.NativeStart.main(Native Method)
11-04 13:35:31.572: E/AndroidRuntime(1375): Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class fragment
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
11-04 13:35:31.572: E/AndroidRuntime(1375): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.Activity.setContentView(Activity.java:1895)
11-04 13:35:31.572: E/AndroidRuntime(1375): at asaf.workfinder.MainActivity.onCreate(MainActivity.java:13)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.Activity.performCreate(Activity.java:5133)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
11-04 13:35:31.572: E/AndroidRuntime(1375): ... 11 more
11-04 13:35:31.572: E/AndroidRuntime(1375): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.MapFragment: make sure class name exists, is public, and has an empty constructor that is public
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.Fragment.instantiate(Fragment.java:592)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.Fragment.instantiate(Fragment.java:560)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.Activity.onCreateView(Activity.java:4738)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
11-04 13:35:31.572: E/AndroidRuntime(1375): ... 21 more
11-04 13:35:31.572: E/AndroidRuntime(1375): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.maps.MapFragment" on path: DexPathList[[zip file "/data/app/asaf.workfinder-1.apk"],nativeLibraryDirectories=[/data/app-lib/asaf.workfinder-1, /vendor/lib, /system/lib]]
11-04 13:35:31.572: E/AndroidRuntime(1375): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
11-04 13:35:31.572: E/AndroidRuntime(1375): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-04 13:35:31.572: E/AndroidRuntime(1375): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-04 13:35:31.572: E/AndroidRuntime(1375): at android.app.Fragment.instantiate(Fragment.java:582)
11-04 13:35:31.572: E/AndroidRuntime(1375): ... 24 more
manifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="asaf.workfinder"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
<permission
android:name="asaf.workfinder.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="asaf.workfinder.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my api key" />
<activity
android:name="asaf.workfinder.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
layout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/tv1"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<fragment
android:id="@+id/asafmap"
android:layout_below="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.MapFragment"/>
</RelativeLayout>
and MainActivity:
package asaf.workfinder;
import android.os.Bundle;
import android.view.View.OnCreateContextMenuListener;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Upvotes: 0
Views: 3052
Reputation: 1023
you can follow this link....
http://www.androidhive.info/2013/08/android-working-with-google-maps-v2/
Add google play services lib and mpas jar file into project...
Upvotes: 1
Reputation: 112
Unable to instantiate fragment com.google.android.gms.maps.MapFragment: make sure class name exists, is public, and has an empty constructor that is public
Be sure you added the google_play_services correctly in ur project Set Up Google Play Services SDK
BTW, Google Map V2 doesn't support to run in the emulator to run it in the emulator follow this post
Upvotes: 0