0

以前は機能していましたが、Eclipse を API 19 に更新したときに壊れたと思います。Maps Activity を実行しようとすると、エラーが表示android.view.InflateException: Binary XML file line #15: Error inflating class fragment at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:587)されます。これで、マップを表示する作業に戻りました。これが私がレイアウトに持っているものです:

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

アクティビティは次のとおりです。

    import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;

import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class WCBCMap extends FragmentActivity {

final int RQS_GooglePlayServices = 1;
private GoogleMap myMap;
Button back_BTN;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.wcbc_map);
    back_BTN = (Button) findViewById(R.id.backMap_wcbc_btn);

    FragmentManager myFragmentManager = getSupportFragmentManager();
    SupportMapFragment mySupportMapFragment = (SupportMapFragment) myFragmentManager
            .findFragmentById(R.id.map_wcbc_FRAG);
    myMap = mySupportMapFragment.getMap();

    // --- back button
    back_BTN.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            Intent plI = new Intent(
                    "com....BUTTON_INTERFACE");
            startActivity(plI);
            finish();

        }
    });
    // --- end back button

}// --- END onCreate

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.splash, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menu_legalnotices:
        String LicenseInfo = GooglePlayServicesUtil
                .getOpenSourceSoftwareLicenseInfo(getApplicationContext ());
        AlertDialog.Builder LicenseDialog = new AlertDialog.Builder(
                WCBCMap.this);
        LicenseDialog.setTitle("Legal Notices");
        LicenseDialog.setMessage(LicenseInfo);
        LicenseDialog.show();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

@Override
protected void onPause() {
    super.onPause();
    overridePendingTransition(R.anim.fadein, R.anim.fadeout);
}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();

    int resultCode = GooglePlayServicesUtil
            .isGooglePlayServicesAvailable(getApplicationContext());

    if (resultCode == ConnectionResult.SUCCESS) {
        Toast.makeText(getApplicationContext(),
                "isGooglePlayServicesAvailable SUCCESS",    Toast.LENGTH_LONG)
                .show();
    } else {
        GooglePlayServicesUtil.getErrorDialog(resultCode, this,
                RQS_GooglePlayServices);
    }

}

}

マニフェスト関連情報は次のとおりです。

    <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<permission
    android:name="com.myapp.wcbc.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" >
</permission>

<uses-permission android:name="com.myapp.wcbc.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" />

.... <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="my API Key is here" />
</application>

Android 4.22 をターゲットにしていますが、Google API 4.22 をターゲットにする必要はありませんか? そこには Google Play サービスとサポート v4 ライブラリがあります。地図が膨らまない理由は誰にもわかりますか?

4

1 に答える 1