I have been working on this particular problem since the beginning of the week. I have read blogs and suggested answers on stack overflow. I have tried different solutions and even used some of the accepted answers from here but my app still keeps crashing. I also tried the mapview and it did not work. I need some help solving this. I have implemented a map before and I did not have any problems but that was in an activity. I am facing issues with implementing in the fragment and the app always crashes at view = inflater.inflate(R.layout.fragment_serv__base_data, container, false);
init();
Below is my manifest file:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.application.sweetiean.stlmaintenance" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTENAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--
The following two permissions are not required to use
Google Maps Android API v2, but are recommended.
-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.application.sweetiean.permission.MAPS_RECEIVE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyA5ULk7TurdcL5PqVOjJ1ZDf9wiZJIwgZc" />
<permission
android:name="com.application.sweetiean.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<application
android:allowBackup="true"
android:icon="@mipmap/supertechlogo"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity
android:name=".SplashActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar" >
</activity>
<activity
android:name=".MaintenanceActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.application.sweetiean.stlmaintenance.MainActivity" />
</activity>
<activity
android:name="com.application.sweetiean.stlservicing.ServicingActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.application.sweetiean.stlmaintenance.MainActivity" />
</activity>
<activity android:name=".DisplayOverviewActivity" >
</activity>
<activity
android:name="com.application.sweetiean.stlservicing.STLSignatureActivity"
android:label="STL Signature">
</activity>
<activity android:name="com.application.sweetiean.stlservicing.ClientSignatureActivity"
android:label="Client Signature">
</activity>
</application>
Here is the xml:
...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="500dp"
android:orientation="vertical"
android:layout_marginBottom="10dp">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="10dp">
<Button
android:id="@+id/getLocationButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/getlocation"
android:background="@drawable/blue_button"
style="@style/button_text_small"/>
<TextView
android:id="@+id/locationTextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="12sp"/>
</LinearLayout>
...
Below is the fragment.java:
public class Serv_BaseDataFragment extends Fragment {
View view;
EditText sysaid, customer, siteId, address;
TextView locationCoordinates;
Spinner taskSpinner, regionSpinner;
Button sign_STL, sign_client, location;
GoogleMap googleMap;
public Serv_BaseDataFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_serv__base_data, container, false);
init();
return view;
}
public void init(){
googleMap = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
sysaid = (EditText)view.findViewById(R.id.sysaidIdEditText);
customer = (EditText)view.findViewById(R.id.customerEditText);
siteId = (EditText)view.findViewById(R.id.siteIdEditText);
address = (EditText)view.findViewById(R.id.addressEditText);
locationCoordinates = (TextView)view.findViewById(R.id.locationTextView);
taskSpinner = (Spinner)view.findViewById(R.id.taskTypeSpinner);
ArrayAdapter<CharSequence> taskAdapter = ArrayAdapter.createFromResource(this.getActivity(), R.array.taskTypeArray, android.R.layout.simple_spinner_item);
taskAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
taskSpinner.setAdapter(taskAdapter);
regionSpinner = (Spinner)view.findViewById(R.id.regionSpinner);
ArrayAdapter<CharSequence> regionAdapter = ArrayAdapter.createFromResource(this.getActivity(), R.array.regionArray, android.R.layout.simple_spinner_item);
regionAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
regionSpinner.setAdapter(regionAdapter);
sign_client = (Button)view.findViewById(R.id.clientSignatureButton);
sign_client.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), ClientSignatureActivity.class);
startActivityForResult(intent, 1);
}
});
sign_STL = (Button)view.findViewById(R.id.STLSignatureButton);
sign_STL.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), STLSignatureActivity.class);
startActivityForResult(intent, 1);
}
});
location = (Button)view.findViewById(R.id.getLocationButton);
location.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
}
and finally the error log:
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: FATAL EXCEPTION: main
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: Process: com.application.sweetiean.stlmaintenance, PID: 5398
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: android.view.InflateException: Binary XML file line #157: Error inflating class fragment
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at com.application.sweetiean.stlservicing.Serv_BaseDataFragment.onCreateView(Serv_BaseDataFragment.java:50)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.v4.app.Fragment.performCreateView(Fragment.java:1965)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1078)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1259)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1624)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.v4.view.ViewPager.populate(ViewPager.java:1106)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.v4.view.ViewPager.populate(ViewPager.java:952)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1474)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.View.measure(View.java:17327)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:610)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:677)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.View.measure(View.java:17327)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.View.measure(View.java:17327)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.View.measure(View.java:17327)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.View.measure(View.java:17327)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.View.measure(View.java:17327)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2548)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.View.measure(View.java:17327)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2277)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1391)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1590)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1249)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6529)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:812)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:612)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:582)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:798)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:733)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95)
11-13 12:04:26.099 5398-5398/com.application.sweetiean.stlmaintenance E/AndroidRuntime: at android.os.Looper.loop(Looper.java:146)