2017-10-27 1 views
1

안녕 얘들 아 내가 조각에 구글 맵을 사용하려고했는데 몇 자습서를 보았고 그들은 모두 조각 활동을 사용하지 않았다. 나는 fragment.Cut에서 동일한 코드를 사용하여 시도했다. 이 오류 오류 : ': app : transformClassesWithDexForDebug'작업에 대한 실행이 실패했습니다. 아래 구글 맵 조각에 DexIndexOverflowException 오류

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

은 (havent 한 아무것도 변경)

@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" /> 

답변

0

혼자는 전체 API를 그래서 아래의 코드를 교환하여 수입하고 그것을 잘 작동했다

compile 'com.google.android.gms:play-services-location:7.8.0'