使用MapView时的异常 - java.lang.RuntimeException:stub

时间:2011-08-02 12:58:20

标签: android intellij-idea android-maps

以下异常对您有意义吗?我正在努力找出原因。当我从MapActivity打开一个子活动(ActivityMap)时,即使MapActivity的布局不包含mapview元素,也会发生这种情况。

我怀疑这是一个项目问题。我正在使用IntelliJ IDEA。我已经将项目设置为针对8级Maps API进行构建。 IDE没有突出显示我在源代码中使用MapActivity的任何问题,并且它构建时没有错误 - 但在运行时会出现此异常。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.google.android.maps.MapView
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:apiKey="<maps api key is here>"
 />
</LinearLayout>

然后是活动:

public class ActivityMap extends MapActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activitymap);
}

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

@Override
protected boolean isLocationDisplayed() {
    return super.isLocationDisplayed();
}

}

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.someapp.myapp/com.someapp.myapp.ActivityMap}: java.lang.RuntimeException: stub
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
        at android.app.ActivityThread.access$1500(ActivityThread.java:117)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:130)
        at android.app.ActivityThread.main(ActivityThread.java:3683)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:507)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
        at dalvik.system.NativeStart.main(Native Method)
        Caused by: java.lang.RuntimeException: stub
        at com.google.android.maps.MapActivity.<init>(Unknown Source)
        at com.someapp.myapp.ActivityMap.<init>(ActivityMap.java:7)
        at java.lang.Class.newInstanceImpl(Native Method)
        at java.lang.Class.newInstance(Class.java:1409)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)

4 个答案:

答案 0 :(得分:4)

运行单元测试时,通常会发生此错误,其中类路径还包含Android JAR文件(Android jar还包含junit测试包,junit.framework和junit.runner)。

但是,由于您没有运行任何单元测试,问题必须在其他地方。

前段时间,我写了一篇关于如何整合地图的文章:http://blog.doityourselfandroid.com/2011/01/18/using-google-maps-in-your-android-app/

它涵盖了详细要求的所有步骤,以及人们在整合地图时遇到的一些常见错误。

答案 1 :(得分:1)

我遇到了同样的问题,原来这是由使用Android 3.0库而不是Google 3.0 API引起的。

要更改库我只需右键单击Eclipse中的项目,选择属性,在Android选项下我选择了Google API(适用于3.0)而不是Android 3.0库。

答案 2 :(得分:0)

您应该在地图活动的xml文件中有一个api密钥 http://code.google.com/android/add-ons/google-apis/mapkey.html

答案 3 :(得分:0)

代码看起来不错。我想你还有其他问题。也许是Android Google Maps API。尝试创建一个新项目。你以前做过地图视图,并且有效吗?