Trying place fragment container and Mapfragment in single layout getting above error.
here placing xml file (start.xml). And from my java class setContentviw(R.layout.start).
stacktrace shows that
error in declaring map fragment
didn't get it.help me
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/fragment_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
</LinearLayout>
logs
09-26 01:59:05.654: E/dalvikvm(1821): Could not find class 'com.google.android.gms.maps.MapFragment', referenced from method com.tukutane.StartActivity.initilizeMap
09-26 01:59:05.654: W/dalvikvm(1821): VFY: unable to resolve check-cast 396 (Lcom/google/android/gms/maps/MapFragment;) in Lcom/tukutane/StartActivity;
09-26 01:59:05.664: D/dalvikvm(1821): VFY: replacing opcode 0x1f at 0x000f
09-26 01:59:05.854: D/AndroidRuntime(1821): Shutting down VM
09-26 01:59:05.854: W/dalvikvm(1821): threadid=1: thread exiting with uncaught exception (group=0x41465700)
09-26 01:59:05.974: E/AndroidRuntime(1821): FATAL EXCEPTION: main
09-26 01:59:05.974: E/AndroidRuntime(1821): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tukutane/com.tukutane.StartActivity}: android.view.InflateException: Binary XML file line #19: Error inflating class fragment
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.ActivityThread.access$600(ActivityThread.java:141)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.os.Handler.dispatchMessage(Handler.java:99)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.os.Looper.loop(Looper.java:137)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.ActivityThread.main(ActivityThread.java:5103)
09-26 01:59:05.974: E/AndroidRuntime(1821): at java.lang.reflect.Method.invokeNative(Native Method)
09-26 01:59:05.974: E/AndroidRuntime(1821): at java.lang.reflect.Method.invoke(Method.java:525)
09-26 01:59:05.974: E/AndroidRuntime(1821): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-26 01:59:05.974: E/AndroidRuntime(1821): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-26 01:59:05.974: E/AndroidRuntime(1821): at dalvik.system.NativeStart.main(Native Method)
09-26 01:59:05.974: E/AndroidRuntime(1821): Caused by: android.view.InflateException: Binary XML file line #19: Error inflating class fragment
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
09-26 01:59:05.974: E/AndroidRuntime(1821): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.Activity.setContentView(Activity.java:1895)
09-26 01:59:05.974: E/AndroidRuntime(1821): at com.tukutane.StartActivity.onCreate(StartActivity.java:34)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.Activity.performCreate(Activity.java:5133)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
09-26 01:59:05.974: E/AndroidRuntime(1821): ... 11 more
09-26 01:59:05.974: E/AndroidRuntime(1821): 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
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.Fragment.instantiate(Fragment.java:592)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.Fragment.instantiate(Fragment.java:560)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.Activity.onCreateView(Activity.java:4738)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
09-26 01:59:05.974: E/AndroidRuntime(1821): ... 22 more
09-26 01:59:05.974: E/AndroidRuntime(1821): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.maps.MapFragment" on path: DexPathList[[zip file "/data/app/com.tukutane-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.tukutane-1, /system/lib]]
09-26 01:59:05.974: E/AndroidRuntime(1821): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
09-26 01:59:05.974: E/AndroidRuntime(1821): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
09-26 01:59:05.974: E/AndroidRuntime(1821): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
09-26 01:59:05.974: E/AndroidRuntime(1821): at android.app.Fragment.instantiate(Fragment.java:582)
09-26 01:59:05.974: E/AndroidRuntime(1821): ... 25 more
Manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tukutane"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="14" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Required to show current location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- Required OpenGL ES 2.0. for Maps V2 -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo" >
<!-- Added SplashActivity -->
<activity
android:name="com.tukutane.SplashActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Adding MainActivity -->
<activity
android:name="com.tukutane.MainActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"
android:uiOptions="splitActionBarWhenNarrow" >
</activity>
<!-- Adding StartActivity -->
<activity
android:name="com.tukutane.StartActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"
android:uiOptions="splitActionBarWhenNarrow" >
</activity>
<!-- Adding LoginActivity -->
<activity
android:name="com.tukutane.LoginActivity"
android:configChanges="orientation"
android:screenOrientation="portrait" >
</activity>
<!-- Adding RegistrationActivity -->
<activity
android:name="com.tukutane.RegistrationActivity"
android:configChanges="orientation"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.parse.integratingfacebook.UserDetailsActivity"
android:configChanges="orientation"
android:label="@string/app_name"
android:screenOrientation="portrait" />
<activity
android:name="com.facebook.LoginActivity"
android:configChanges="orientation"
android:label="@string/app_name"
android:screenOrientation="portrait" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/app_id" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/maps_key" />
</application>
</manifest>
activity
package com.tukutane;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.tukutane.R.drawable;
public class StartActivity extends Activity {
public static Context appContext;
// Google Map
private GoogleMap googleMap;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
try {
// Loading map
initilizeMap();
} catch (Exception e) {
e.printStackTrace();
}
appContext = getApplicationContext();
// ActionBar
ActionBar actionbar = getActionBar();
getActionBar().setDisplayShowTitleEnabled(false);
getActionBar().setDisplayShowHomeEnabled(false);
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Setting resource for tab
ActionBar.Tab ProfileTab = actionbar.newTab().setIcon(drawable.profile);
ActionBar.Tab SettingsTab = actionbar.newTab()
.setIcon(drawable.setting);
ActionBar.Tab MessagesTab = actionbar.newTab()
.setIcon(drawable.message);
ActionBar.Tab ContactsTab = actionbar.newTab().setIcon(
drawable.contacts);
ActionBar.Tab DropDownTab = actionbar.newTab().setIcon(drawable.menu);
Fragment ProfileFragment = new ProfileFragment();
Fragment SettingsFragment = new SettingsFragment();
Fragment MessagesFragment = new MessagesFragment();
Fragment ContactsFragment = new ContactsFragment();
Fragment DropdownFragment = new DropdownFragment();
// Setting Tab Listener
ProfileTab.setTabListener(new MyTabsListener(ProfileFragment));
SettingsTab.setTabListener(new MyTabsListener(SettingsFragment));
MessagesTab.setTabListener(new MyTabsListener(MessagesFragment));
ContactsTab.setTabListener(new MyTabsListener(ContactsFragment));
DropDownTab.setTabListener(new MyTabsListener(DropdownFragment));
actionbar.addTab(ProfileTab);
actionbar.addTab(SettingsTab);
actionbar.addTab(MessagesTab);
actionbar.addTab(ContactsTab);
// actionbar.addTab(DropDownTab);
}
private void initilizeMap() {
// TODO Auto-generated method stub
if (googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMap();
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
@Override
protected void onResume() {
super.onResume();
initilizeMap();
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
System.exit(0);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menuitem_search:
Toast.makeText(appContext, "suggest places and events",
Toast.LENGTH_SHORT).show();
return true;
case R.id.menuitem_add:
Toast.makeText(appContext, "Notifications", Toast.LENGTH_SHORT)
.show();
return true;
case R.id.menuitem_share:
TextView inf = new TextView(this);
Toast.makeText(appContext, "Menu", Toast.LENGTH_SHORT).show();
CharSequence[] items = { "Invite friends", "Suggestions", "Points" };
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if (item == 0) {
} else if (item == 1) {
} else if (item == 2) {
}
}
});
AlertDialog dialog = builder.create();
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
WindowManager.LayoutParams wmlp = dialog.getWindow()
.getAttributes();
wmlp.gravity = Gravity.BOTTOM | Gravity.RIGHT;
wmlp.x = 50; // x position
wmlp.y = 75; // y position
dialog.show();
return true;
}
return false;
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("tab", getActionBar().getSelectedNavigationIndex());
}
}
class MyTabsListener implements ActionBar.TabListener {
public Fragment fragment;
public MyTabsListener(Fragment fragment) {
this.fragment = fragment;
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
Toast.makeText(StartActivity.appContext, "Reselected!",
Toast.LENGTH_LONG).show();
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.replace(R.id.fragment_container, fragment);
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(fragment);
}
}