3つのボタンが固定されたGoogleマップAPI v2でアプリを作成しようとしましたが、メッセージでアプリがクラッシュ:Google Map API v2:java.lang.IllegalStateException:アンドロイドのメソッドを実行できませんでした:onClick
PID:25216 java.lang.IllegalStateException: は、アンドロイドのためのメソッドを実行できませんでした:android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick AppCompatViewInflater.java:293でのonClick)
ここにactivity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<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.malenik.example.mygoogleapimaps.MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="City"
android:id="@+id/btnCity"
android:enabled="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:onClick="onClick_City"
android:nestedScrollingEnabled="false" />
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_below="@+id/btnCity"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bortnichi"
android:id="@+id/btnBortnichi"
android:layout_alignTop="@+id/btnBratislavska"
android:layout_alignRight="@+id/map"
android:layout_alignEnd="@+id/map"
android:nestedScrollingEnabled="false"
android:onClick="onClick_Bortnichi" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bratislavska"
android:id="@+id/btnBratislavska"
android:layout_alignTop="@+id/btnCity"
android:layout_centerHorizontal="true"
android:onClick="onClick_Bratislavska" />
</RelativeLayout>
マニフェスト:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.malenik.example.mygoogleapimaps">
<uses-sdk android:minSdkVersion="15"/>
<permission
android:name="com.malenik.example.mygoogleapimaps.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.malenik.example.mygoogleapimaps.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="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAM098olhG-MvsjIivmhdCwA_vSw2GjVT4"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
とMainActivity:
public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
private final LatLng LOCATION_BRATISLAVSKA = new LatLng(50.489402, 30.609111);
private final LatLng LOCATION_BORTNICHI = new LatLng(50.383452, 30.699068);
private final LatLng LOCATION_CITY = new LatLng(50.451188, 30.522566);
private GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
map.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
map.addMarker(new MarkerOptions().position(new LatLng(10.699160, 122.547208)).title("San Pedro Molo Terminal"));
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
map.setMyLocationEnabled(true);
map.setTrafficEnabled(true);
map.setIndoorEnabled(true);
map.setBuildingsEnabled(true);
map.getUiSettings().setZoomControlsEnabled(true);
}
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void onClick_City(View view){
Button btnCity = (Button)findViewById(R.id.btnCity);
googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(LOCATION_CITY, 16);
googleMap.animateCamera(update);
}
public void onClick_Bratislavska(View view){
Button btnBratislavska = (Button)findViewById(R.id.btnBratislavska);
googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(LOCATION_BRATISLAVSKA, 18);
googleMap.animateCamera(update);
}
public void onClick_Bortnichi(View view){
Button btnBortnichi = (Button)findViewById(R.id.btnBortnichi);
googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(LOCATION_BORTNICHI, 20);
googleMap.animateCamera(update);
}
}
このコードで間違っているものを私に教えてください?
は、あなたのログのエラーを投稿することができます参照してください? –
はい、次のリンク: https://gyazo.com/fa0ee5d48879929fceef3c932787d144 –