无法为android执行方法:onClick

无法为android执行方法:onClick,android,invocationtargetexception,Android,Invocationtargetexception,在我的应用程序中,当用户单击按钮时,它将执行方法内部的CameraUpdate。代码如下: LocationsActivity.java public class TermLocActivity extends AppCompatActivity implements OnMapReadyCallback { GoogleMap map; public static final CameraPosition MoloTerminal = new Ca

在我的应用程序中,当用户单击按钮时,它将执行方法内部的
CameraUpdate
。代码如下:

LocationsActivity.java

public class TermLocActivity extends AppCompatActivity implements OnMapReadyCallback {

    GoogleMap map;


    public static final CameraPosition MoloTerminal =
            new CameraPosition.Builder().target(new LatLng(10.699160, 122.547208))
            .zoom(16)
            .bearing(300)
            .tilt(50)
            .build();

    public static final CameraPosition TagbakTerminal =
            new CameraPosition.Builder().target(new LatLng(10.761854, 122.577128))
                    .zoom(16)
                    .bearing(300)
                    .tilt(50)
                    .build();

    public static final CameraPosition CeresTerminal =
            new CameraPosition.Builder().target(new LatLng(10.758862, 122.567774))
                    .zoom(16)
                    .bearing(300)
                    .tilt(50)
                    .build();


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

        SupportMapFragment mapFragment =
                (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);


    }

    @Override
    public void onMapReady(GoogleMap map) {

        map.addMarker(new MarkerOptions().position(new LatLng(10.699160, 122.547208)).title("San Pedro Molo Terminal"));
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(10.699160, 122.547208), 16));
    }


    public void onGoToMoloTerm(View v) {

        map.animateCamera(CameraUpdateFactory.newCameraPosition(MoloTerminal));

    }
    public void onGoToTagbakTerm(View v) {

        map.animateCamera(CameraUpdateFactory.newCameraPosition(TagbakTerminal));

    }
    public void onGoToCeresTerm(View v) {

        map.animateCamera(CameraUpdateFactory.newCameraPosition(CeresTerminal));

    }
}
以下是XML文件:

活动位置.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:paddingTop="15dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingBottom="10dp"
    tools:context="com.thesis.iwander.TermLocActivity">

    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="?attr/actionBarSize"
        class="com.google.android.gms.maps.SupportMapFragment"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Molo Term."
        android:id="@+id/button"
        android:onClick="onGoToMoloTerm"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ceres Term."
        android:id="@+id/button2"
        android:onClick="onGoToCeresTerm"
        android:layout_alignTop="@+id/button"
        android:layout_toRightOf="@+id/button"
        android:layout_toEndOf="@+id/button"
        android:layout_marginLeft="13dp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Tagbak Term."
        android:id="@+id/button3"
        android:onClick="onGoToTagbakTerm"
        android:layout_alignTop="@+id/button2"
        android:layout_alignRight="@+id/map"
        android:layout_alignEnd="@+id/map" />
</RelativeLayout>

我试图找到与我的问题类似的问题,但我找不到任何问题。

您的xml中onClick的名称错误,Java文件中的名称错误(它们需要匹配),或者签名错误(它应该返回void并将单个视图作为参数)

您的xml中onClick的名称错误,Java文件中的错误名称(它们需要匹配)或错误签名(应返回void并将单个视图作为参数)

您的对象
谷歌地图
未初始化,因此您将获得空指针异常

快速修复:
do
map=mapFragment.getMap()

您的对象
谷歌地图
未初始化,因此您将获得一个空指针异常

快速修复:
do
map=mapFragment.getMap()

原因:com.deshesis.iwander.TermLocActivity.onGoToCeresTerm(TermLocActivity.java:77)上的java.lang.NullPointerException造成的。
您尚未将代码显示给
onGoToCeresTerm()
。抱歉,我编辑了这个问题。显示相同的错误。
原因是:com.deshesis.iwander.TermLocActivity.onGoToCeresTerm(TermLocActivity.java:77)上的java.lang.NullPointerException。
您尚未将代码显示给
onGoToCeresTerm()
。抱歉,我编辑了问题。同样的错误显示。很抱歉,我编辑了这个问题。但是它显示了相同的错误。很抱歉,我编辑了这个问题。但它显示了相同的错误。感谢您的回复。我应该把它放在
onCreate()
方法中吗?谢谢您的回复。我应该将其放在
onCreate()
方法中吗?
FATAL EXCEPTION: main
   Process: com.thesis.iwander, PID: 28783
   java.lang.IllegalStateException: Could not execute method for android:onClick
   at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener
          .onClick(AppCompatViewInflater.java:293)
   at android.view.View.performClick(View.java:4472)
   at android.view.View$PerformClick.run(View.java:18779)
   at android.os.Handler.handleCallback(Handler.java:808)
   at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:193)
   at android.app.ActivityThread.main(ActivityThread.java:5333)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
   at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.reflect.InvocationTargetException
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:515)
      at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener
         .onClick(AppCompatViewInflater.java:288)
     at android.view.View.performClick(View.java:4472) 
      at android.view.View$PerformClick.run(View.java:18779) 
      at android.os.Handler.handleCallback(Handler.java:808) 
      at android.os.Handler.dispatchMessage(Handler.java:103) 
      at android.os.Looper.loop(Looper.java:193) 
      at android.app.ActivityThread.main(ActivityThread.java:5333) 
       at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645) 
       at dalvik.system.NativeStart.main(Native Method) 
       Caused by: java.lang.NullPointerException
          at com.thesis.iwander.TermLocActivity.onGoToCeresTerm(TermLocActivity.java:77)
         at java.lang.reflect.Method.invokeNative(Native Method) 
          at java.lang.reflect.Method.invoke(Method.java:515) 
         at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener
             .onClick(AppCompatViewInflater.java:288) 
        at android.view.View.performClick(View.java:4472) 
         at android.view.View$PerformClick.run(View.java:18779) 
         at android.os.Handler.handleCallback(Handler.java:808) 
          at android.os.Handler.dispatchMessage(Handler.java:103) 
          at android.os.Looper.loop(Looper.java:193) 
          at android.app.ActivityThread.main(ActivityThread.java:5333) 
          at java.lang.reflect.Method.invokeNative(Native Method) 
          at java.lang.reflect.Method.invoke(Method.java:515) 
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829) 
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645) 
            at dalvik.system.NativeStart.main(Native Method)