2

ここでぐるぐる回っていると思います。

Locate というアクティビティがあります。

public class Locate extends Activity {

public static String lat;
public static String lon;
public static String number;

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.locate);

    final Button buttonMaps = (Button) findViewById(R.id.ButtonMaps);
    buttonMaps.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
         Toast.makeText(getBaseContext(), "Button Pressed", Toast.LENGTH_SHORT).show();


        try {
         Intent i = new Intent(getBaseContext(), displayMap.class);
         i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         startActivity(i);
         }
         catch (ActivityNotFoundException e) {
          Toast.makeText(getBaseContext(), "Activity Not Found", Toast.LENGTH_SHORT).show(); 
         }



    }});

// Toast.makeText(getBaseContext(), "lat: " + lat + " long: " + lon + " from: " + testname, Toast.LENGTH_LONG).show();
}

displayMap クラスを通常のアクティビティにして、それが読み込まれたことを確認するトースト メッセージを表示するだけで、問題なく動作します。

私がこれを行う場合;

public class displayMap extends MapActivity 
{    
/** Called when the activity is first created. */
public void onCreate()
{

    setContentView(R.layout.displaymap);
    Toast.makeText(getBaseContext(), "Display Map", Toast.LENGTH_SHORT).show();
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}

次に、ボタンをクリックするとすぐに、強制終了します。

マニフェストに正しい「uses-library」タグがあります。

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
<uses-library android:name="com.google.android.maps" />

ロードしようとするたびに強制終了するだけではわかりません。

これを onClick ハンドラにすると、動作中の googlemaps/default マップビューが起動します

        public void onClick(View v) {
         Toast.makeText(getBaseContext(), "Button Pressed", Toast.LENGTH_SHORT).show();

         Uri uri=Uri.parse("geo:"+Locate.lat+","+Locate.lon);
         StartActivity(new Intent(Intent.ACTION_VIEW, uri));
         }

しかし、それは私がやろうとしていることではありません。オーバーレイなどを追加できるように、自分でやりたいのです。しかし、パーミッションが正しく設定されており、lib がそこにあることは証明されています。

アプリ FC が予期しない DEX エラーである場合の logcat エラー。

誰かがここで正しい方向を指すことができますか?

4

2 に答える 2

1

displayMap の onCreate で、スーパー クラスを呼び出すのを忘れていました

public class displayMap extends MapActivity 
{    
/** Called when the activity is first created. */
public void onCreate()
{
    super.onCreate(icicle); /************* Line to add ********/
    setContentView(R.layout.displaymap);
    Toast.makeText(getBaseContext(), "Display Map", Toast.LENGTH_SHORT).show();
}

またgetBaseContext()、推奨されません -getContext()またはを使用しますthis

このstackoverflow投稿の詳細

于 2010-03-04T18:59:22.307 に答える
0

わかりました、問題が見つかりました。何らかの理由で、私はGoogle APIを持っていて、それからmaps.jarがEclipseのbuildpath / libにリストされていました。クリーンアップされ、現在は期待どおりに動作しています。

于 2010-03-07T17:57:07.440 に答える