Hey guys i was trying to use google map in a fragment and i saw few tutorials and they all were using fragment activity not fragment.So i tried using the same code in fragment.but i am getting this error Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
below is my code of the fragment
public class MapsActivity extends Fragment implements OnMapReadyCallback {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
MapView mapView;
private GoogleMap mMap;
private FusedLocationProviderClient mFusedLocationClient;
private OnFragmentInteractionListener mListener;
.............some fixed code in fragment (havent changed anything)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view= inflater.inflate(R.layout.fragment_maps, container, false);
mapView = (MapView)view.findViewById(R.id.MapView);
mapView.onCreate(savedInstanceState);
mapView.onResume();
mapView.getMapAsync(this);
// SupportMapFragment mapFragment =
(SupportMapFragment)getChildFragmentManager()
// .findFragmentById(R.id.MapView);
// mapFragment.getMapAsync(this);
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_maps, container, false);
}
..................(some code i havent touched this part)
LatLng myPosition;
@Override
public void onMapReady(final GoogleMap googleMap) {
mMap = googleMap;
mFusedLocationClient =
LocationServices.getFusedLocationProviderClient(getContext());
// Add a marker in Sydney and move the camera
if (ActivityCompat.checkSelfPermission(getContext(),
android.Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED && Activi
tyCompat.checkSelfPermission(getContext(),
android.Manifest.permission.ACCESS_COARSE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
return;
}
Task task= mFusedLocationClient.getLastLocation()
.addOnSuccessListener((Executor) this, new
OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
// Got last known location. In some rare situations this
can be null.
// Toast.makeText(getBaseContext(),"code run
here",Toast.LENGTH_SHORT).show();
if (location != null) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
String a,b;
a= String.valueOf(latitude);
b= String.valueOf(longitude);
Log.d(a,b);
//
Toast.makeText(getBaseContext(),a+b,Toast.LENGTH_SHORT).show();
LatLng latLng = new LatLng(latitude, longitude);
myPosition = new LatLng(latitude, longitude);
googleMap.addMarker(new
MarkerOptions().position(myPosition).title("Start"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(myPosition));
}
}
});
}
public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
void onFragmentInteraction(Uri uri);
}
}
i have tried doing this but still the same results
public View onCreateView(LayoutInflater inflater, ViewGroup
container,
Bundle savedInstanceState) {
View view= inflater.inflate(R.layout.fragment_maps, container,
false);
return inflater.inflate(R.layout.fragment_maps, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mapView = (MapView)view.findViewById(R.id.Map);
if(mapView != null){
mapView.onCreate(null);
mapView.onResume();
mapView.getMapAsync(this);
}
}
laayout file
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.jimmy.workmen.DashboardFragment.MapsActivity">
<!-- TODO: Update blank fragment layout -->
<com.google.android.gms.maps.MapView
android:id="@+id/Map"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
the problem was that i was using
compile 'com.google.android.gms:play-services:7.8.0'
instead of using location alone it imports whole api so i replaced it by code below and it was working fine
compile 'com.google.android.gms:play-services-location:7.8.0'
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments