Ich möchte eine Anwendung erstellen, die das Google Maps API verwendet, ich begann mit einer einfachen Anwendung, die eine Google Map-Aktivität öffnet. (Ich lade Google Play-Dienste vom SDK-Manager herunter). Ich denke, dass es ein sehr einfaches Programm ist, aber es gibt einen Fehler, wenn ich versuche, meine Anwendung auszuführen.DexIndexOverflowException Mit Google Maps API
Hier ist der Code meines Programms und auch der Fehler von Android Studio generiert.
den Fehler:
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
der Code:
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
/**
* Manipulates the map once available.
* This callback is triggered when the map is ready to be used.
* This is where we can add markers or lines, add listeners or move the camera. In this case,
* we just add a marker near Sydney, Australia.
* If Google Play services is not installed on the device, the user will be prompted to install
* it inside the SupportMapFragment. This method will only be triggered once the user has
* installed Google Play services and returned to the app.
*/
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
}
<resources>
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">My API key is here ;) </string>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.amine.bea_mapapp">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="My API key is here ;)" />
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Entschuldigung für das Fehlerbild, der Fehler ist: Fehler: Ausführung fehlgeschlagen für Task ': app: transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: Methoden-ID nicht in [0, 0xffff ]: 65536 –
Sehen Sie diesen als Referenz \t http://www.androidhive.info/2013/08/android-working-with-google-maps-v2/ –
Sie können dies tun. http://stackoverflow.com/a/32811133/5296734 Dies kann Ihnen helfen. –