안녕 얘들 아 내가 조각에 구글 맵을 사용하려고했는데 몇 자습서를 보았고 그들은 모두 조각 활동을 사용하지 않았다. 나는 fragment.Cut에서 동일한 코드를 사용하여 시도했다. 이 오류 오류 : ': app : transformClassesWithDexForDebug'작업에 대한 실행이 실패했습니다. 아래 구글 맵 조각에 DexIndexOverflowException 오류
은 (havent 한 아무것도 변경)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
@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);
}
}
조각
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;
............. 조각의 일부 고정 코드 내 코드입니다
나는 이것을했지만 여전히 동일한 결과를 시도했다.
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 파일 문제가 내가 위치를 사용하는 것이
compile 'com.google.android.gms:play-services:7.8.0'
를 사용하는 대신 하였다
<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" />