Hallo, ich versuche Google Maps in meinem Android-Fragment anzuzeigen. Ich habe alles gut gemacht, aber ich weiß nicht, wo dieser Fehler herkommt. Ich habe versucht, verschiedene Dinge zu ändern, hat aber überhaupt nicht funktioniert. Unten ist der Code.Laufzeit Ausnahme von Android Absturz der App
package com.example.nadeemahmad.guitest;
import android.app.Dialog;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageButton;
import android.widget.Toast;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.OnMapReadyCallback;
public class profile extends AppCompatActivity implements OnMapReadyCallback {
GoogleMap googleMap;
ImageButton pr_img_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
//AIzaSyAjxQKEZc9MHTH3f173Iv21Gw2c6IeUX2U
pr_img_btn = (ImageButton) findViewById(R.id.pr_img_btn);
pr_img_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(profile.this,settings.class);
startActivity(i);
}
});
if(googleServicesAvailble()){
Toast.makeText(profile.this,"Perfect!!!",Toast.LENGTH_LONG).show();
initMap();
}
}
private void initMap() {
MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.mapFrag);
mapFragment.getMapAsync(this);
}
public boolean googleServicesAvailble(){
GoogleApiAvailability gpa = GoogleApiAvailability.getInstance();
int avail = gpa.isGooglePlayServicesAvailable(this);
if(avail == ConnectionResult.SUCCESS){
return true;
} else if(gpa.isUserResolvableError(avail)){
Dialog dialog = gpa.getErrorDialog(this,avail,0);
dialog.show();
} else{
Toast.makeText(profile.this,"Can't connect to play store",Toast.LENGTH_LONG).show();
}
return false;
}
@Override
public void onMapReady(GoogleMap Map) {
googleMap = Map;
}
}
Im Folgenden finden Sie die Manifest-Datei für Berechtigungen. Und die Metadaten und Metadaten. Alles funktioniert gut und hat keine Fehler.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.nadeemahmad.guitest">
<!--Permissions-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<permission android:name="com.example.nadeemahmad.guitest.MAPS.RECIEVE" android:protectionLevel="signature"/>
<uses-permission android:name="com.example.nadeemahmad.guitest.MAPS.RECIEVE"/>
<uses-permission android:name="com.google.android.providers.gsf.permissions.READ_GSERVICES"/>
<uses-feature android:glEsVersion="0x0020000" android:required="true"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".splash"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:noHistory="true" />
<activity
android:name=".profile"
android:noHistory="true" />
<activity
android:name=".profile_update"
android:noHistory="true" />
<activity
android:name=".sync_contacts"
android:noHistory="true" />
<activity
android:name=".settings"
android:noHistory="true" />
<activity android:name=".synced_contacts_list"></activity>
</application>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyDKymeBXNeiFWY5jRUejv6zItpmr2MVyQ0" />
<meta-data android:name="come.google.gms.version" android:version="8487000"/>
</manifest>
Dies ist die Ausnahme von mir gezeigt!
07-11 10:05:20.044 12147-12147/com.example.nadeemahmad.guitest E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.nadeemahmad.guitest, PID: 12147
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.nadeemahmad.guitest/com.example.nadeemahmad.guitest.profile}: android.view.InflateException: Binary XML file line #70: Binary XML file line #70: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Caused by: android.view.InflateException: Binary XML file line #70: Binary XML file line #70: Error inflating class fragment
Caused by: android.view.InflateException: Binary XML file line #70: Error inflating class fragment
Caused by: java.lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.geo.API_KEY" android:value="your API key"/> is in the <application> element of AndroidManifest.xml
at com.google.maps.api.android.lib6.drd.q.b(:com.google.android.gms.DynamiteModulesB:39)
at com.google.maps.api.android.lib6.auth.e.a(:com.google.android.gms.DynamiteModulesB:12)
at com.google.android.gms.maps.internal.CreatorImpl.a(:com.google.android.gms.DynamiteModulesB:121)
at com.google.android.gms.maps.internal.CreatorImpl.newMapFragmentDelegate(:com.google.android.gms.DynamiteModulesB:25)
at com.google.android.gms.maps.internal.g.onTransact(:com.google.android.gms.DynamiteModulesB:35)
at android.os.Binder.transact(Binder.java:507)
at uni.newMapFragmentDelegate(:com.google.android.gms:1)
at com.google.android.gms.maps.internal.CreatorImpl.newMapFragmentDelegate(:com.google.android.gms:1)
at unh.onTransact(:com.google.android.gms:13)
at android.os.Binder.transact(Binder.java:507)
at com.google.android.gms.internal.zzed.zza(Unknown Source)
at com.google.android.gms.maps.internal.zzf.zzH(Unknown Source)
at com.google.android.gms.maps.MapFragment$zzb.zzwg(Unknown Source)
at com.google.android.gms.maps.MapFragment$zzb.zza(Unknown Source)
at com.google.android.gms.dynamic.zza.zza(Unknown Source)
at com.google.android.gms.dynamic.zza.onInflate(Unknown Source)
at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
at android.app.Fragment.onInflate(Fragment.java:1419)
at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2314)
at android.app.FragmentController.onCreateView(FragmentController.java:99)
at android.app.Activity.onCreateView(Activity.java:6080)
at android.support.v4.app.BaseFragmentActivityApi14.onCreateView(BaseFragmentActivityApi14.java:41)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:75)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:784)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:865)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:873)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
at android.view.LayoutInflater.inflate(LayoutInflater.java:525)
at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
at android.view.LayoutInflater.inflate(LayoutInflater.java:378)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:289)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at com.example.nadeemahmad.guitest.profile.onCreate(profile.java:27)
07-11 10:05:20.044 12147-12147/com.example.nadeemahmad.guitest E/AndroidRuntime: at android.app.Activity.performCreate(Activity.java:6942)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2880)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
** Dies ist der Fehler jetzt sehen kann! ** Installation fehlgeschlagen mit Meldung INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Fehler beim Parsen während installPackageLI: /data/app/vmdl1158636114.tmp/base.apk (unter Binär-XML-Dateizeile # 84): erfordert einen android: Wert oder android: Ressourcenattribut. Es ist möglich, dass dieses Problem gelöst wird, indem eine vorhandene Version der apk, falls vorhanden, deinstalliert und anschließend neu installiert wird. WARNUNG: Durch das Deinstallieren werden die Anwendungsdaten entfernt! Möchten Sie die vorhandene Anwendung deinstallieren? –