0

これが非常にばかげた質問になる可能性があることはわかっているので、タイトルを見ただけで私を失望させないでください。Android アプリケーションで MapActivity 拡張クラスを開始しようとすると、最も奇妙なことが起こります。

これにはたくさんの質問があることを知っています。私は調査を行いましたが、それらのほとんどは対応する名前の確認に焦点を当てており、どれもうまくいきませんでした.

マニフェストを更新しても、クラスはそこにあり、 ClassNotFound 例外が発生します...

私が間違っていることを教えてください。

Android マニフェスト:

<activity
        android:name="ro.gebs.captoom.activities.LocationActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

LocationActivity クラス:

package ro.gebs.captoom.activities;

import android.os.Bundle;

import com.example.captoom.R;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;

public class LocationActivity extends MapActivity {

    MapView mapView = null;
    MyLocationOverlay myLocationOverlay = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // main.xml contains a MapView
        setContentView(R.layout.preview_location);

        // extract MapView from layout
        mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);

        // create an overlay that shows our current location
        myLocationOverlay = new MyLocationOverlay(this, mapView);

        // add this overlay to the MapView and refresh it
        mapView.getOverlays().add(myLocationOverlay);
        mapView.postInvalidate();
    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }

    @Override
    protected void onResume() {
        super.onResume();
        // when our activity resumes, we want to register for location updates
        myLocationOverlay.enableMyLocation();
    }

    @Override
    protected void onPause() {
        super.onPause();
        // when our activity pauses, we want to remove listening for location
        // updates
        myLocationOverlay.disableMyLocation();
    }
}

そしてエラーログ:

07-31 09:35:34.227: E/AndroidRuntime(14613): FATAL EXCEPTION: main
07-31 09:35:34.227: E/AndroidRuntime(14613): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.captoom/ro.gebs.captoom.activities.LocationActivity}: java.lang.ClassNotFoundException: ro.gebs.captoom.activities.LocationActivity
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2034)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.ActivityThread.access$700(ActivityThread.java:140)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.os.Looper.loop(Looper.java:137)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.ActivityThread.main(ActivityThread.java:4921)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at java.lang.reflect.Method.invokeNative(Native Method)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at java.lang.reflect.Method.invoke(Method.java:511)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at dalvik.system.NativeStart.main(Native Method)
07-31 09:35:34.227: E/AndroidRuntime(14613): Caused by: java.lang.ClassNotFoundException: ro.gebs.captoom.activities.LocationActivity
07-31 09:35:34.227: E/AndroidRuntime(14613):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.Instrumentation.newActivity(Instrumentation.java:1068)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2025)
07-31 09:35:34.227: E/AndroidRuntime(14613):    ... 11 more

それが違いを生む場合、私のビルドはGoogle APIプラットフォームもターゲットにしていることに注意してください...

編集プロジェクトにも含めていた Google Play サービス ライブラリを除外しました。エラー ログは次のように変わります。

07-31 09:51:44.433: E/AndroidRuntime(14918): FATAL EXCEPTION: main
07-31 09:51:44.433: E/AndroidRuntime(14918): java.lang.NoClassDefFoundError: ro.gebs.captoom.activities.LocationActivity

ありがとう!

4

2 に答える 2

1

さて、MapActivity はもう使用されていません.. この例を試してみてください。

グーグルマップ

于 2013-07-31T06:48:20.777 に答える