gpt4 book ai didi

java - 每当我调用 getMap() 时,我都会收到 nullPointerException

转载 作者:行者123 更新时间:2023-11-29 21:09:18 30 4
gpt4 key购买 nike

无论我做什么,我的代码似乎都会在 getMap() 处崩溃。我几乎在所有地方都尝试过调整我的代码。我以前创建过这个应用程序,但由于计算机崩溃,我不得不重建。我的一些代码。现在它崩溃了。我的主要代码:

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;


public class FishFishSpotActivity extends Activity{

public static final String XCORD = "xcord";
public static final String YCORD = "ycord";
public static final String NOTE = "note";
public static final String SAVED = "saved";
public static final String ID = "id";
TextView XCord= null;
TextView YCord= null;
TextView Note= null;
int Id = 0;
Boolean Saved = null;
private GoogleMap map;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fish_fish_spot);

initializeMap();

}

protected void onStart(){
map.isMyLocationEnabled();


}

@Override
protected void onResume() {
super.onResume();

}

public boolean onCreateOptionsMenu(Menu menu){

return false;

}

public void onMapClick(LatLng point){
map.addMarker(new MarkerOptions().position(point));
}

public void onMarkerClick(Marker marker){

}

public static void SpotSaved(boolean saved, String A){

}

private void initializeMap()
{
if (map == null) {
map = ((MapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMap();

// check if map is created successfully or not
if (map == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
}

}

这是我的manafist:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.Nick.fishfishspot"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="19" />


<permission
android:name="com.Nick.fishfishspot.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>

<uses-permission android:name="com.Nick.fishfishspot.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>


<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="key is here"/>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

<activity
android:name="com.Nick.fishfishspot.FishFishSpotActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

这是 XML:

<RelativeLayout 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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.Nick.fishfishspot.FishFishSpotActivity$PlaceholderFragment" >

<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment"/>

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="go" />

<EditText
android:id="@+id/x_cord"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:ems="10" >

<requestFocus />
</EditText>

<EditText
android:id="@+id/y_cord"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/x_cord"
android:layout_alignBottom="@+id/x_cord"
android:layout_toLeftOf="@id/button1"
android:layout_toRightOf="@+id/x_cord"
android:ems="10" />

这是错误:

 05-05 22:44:53.390: E/AndroidRuntime(24604): FATAL EXCEPTION: main
05-05 22:44:53.390: E/AndroidRuntime(24604): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Nick.fishfishspot/com.Nick.fishfishspot.FishFishSpotActivity}:java.lang.NullPointerException
05-05 22:44:53.390: E/AndroidRuntime(24604): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2304)
05-05 22:44:53.390: E/AndroidRuntime(24604): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
05-05 22:44:53.390: E/AndroidRuntime(24604): at android.app.ActivityThread.access$700(ActivityThread.java:165)
05-05 22:44:53.390: E/AndroidRuntime(24604): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1326)
05-05 22:44:53.390: E/AndroidRuntime(24604): at android.os.Handler.dispatchMessage(Handler.java:99)
05-05 22:44:53.390: E/AndroidRuntime(24604): at android.os.Looper.loop(Looper.java:137)
05-05 22:44:53.390: E/AndroidRuntime(24604): at android.app.ActivityThread.main(ActivityThread.java:5450)
05-05 22:44:53.390: E/AndroidRuntime(24604): at java.lang.reflect.Method.invokeNative(Native Method)
05-05 22:44:53.390: E/AndroidRuntime(24604): at java.lang.reflect.Method.invoke(Method.java:525)
05-05 22:44:53.390: E/AndroidRuntime(24604): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
05-05 22:44:53.390: E/AndroidRuntime(24604): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
05-05 22:44:53.390: E/AndroidRuntime(24604): at dalvik.system.NativeStart.main(Native Method)
05-05 22:44:53.390: E/AndroidRuntime(24604): Caused by: java.lang.NullPointerException
05-05 22:44:53.390: E/AndroidRuntime(24604): at com.Nick.fishfishspot.FishFishSpotActivity.initializeMap(FishFishSpotActivity.java:76)
05-05 22:44:53.390: E/AndroidRuntime(24604): at com.Nick.fishfishspot.FishFishSpotActivity.onCreate(FishFishSpotActivity.java:38)
05-05 22:44:53.390: E/AndroidRuntime(24604): at android.app.Activity.performCreate(Activity.java:5369)
05-05 22:44:53.390: E/AndroidRuntime(24604): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
05-05 22:44:53.390: E/AndroidRuntime(24604): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267)
05-05 22:44:53.390: E/AndroidRuntime(24604): ... 11 more

最佳答案

你不见了

<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

在 list 的应用标签中

getMap() 可以返回 null。您可以在初始化 GoogleMap 对象之前检查 google play 服务的可用性

A GoogleMap can only be acquired using getMap() when the underlying maps system is loaded and the underlying view in the fragment exists. This class automatically initializes the maps system and the view; however you cannot be guaranteed when it will be ready because this depends on the availability of the Google Play services APK. If a GoogleMap is not available, getMap() will return null.

此外,tools:context="com.Nick.fishfishspot.FishFishSpotActivity$PlaceholderFragment" 提示您在 Activity 中初始化您的 MapFragment 属于 fragment 。

如果您想在 fragment 中放置 map ,则需要扩展 MapFragment 或在 fragment 布局中使用 MapView

Android - android.view.InflateException: Binary XML file line #8: Error inflating class fragment

关于java - 每当我调用 getMap() 时,我都会收到 nullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23485662/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com