2010-09-10 3 views
4

Я пытаюсь реализовать пользовательский MapView. Внутри моего MapActivity (названный mainmap) У меня есть внутренний класс, который расширяет MapView:Пользовательский MapView бросает NoSuchMethodException, но он есть!

private class Lmapview extends MapView{ 

    public Lmapview(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     gestures = new GestureDetector(mainmap.this, new GestureListener(this)); 
    } 

    public boolean OnTouchEvent(MotionEvent event){ 
     return gestures.onTouchEvent(event); 

    } 
} 

Я мой main.xml отформатированный, чтобы найти внутренний класс, как так:

<?xml version="1.0" encoding="utf-8"?> 
<view 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    class="com.mondo.tbuddy.mainmap$Lmapview" 
    android:id="@+id/mapview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:clickable="true" 
    android:apiKey=***** 
/> 

Кроме того, в Androidmanifest. xml, у меня есть соответствующая запись <uses-library android:name="com.google.android.maps"/>.

Когда я пытаюсь запустить мое приложение, я получаю (среди прочего) в LogCat:

ERROR/AndroidRuntime (14999): Вызванный по: android.view.InflateException: Binary линия XML файл # 2: Ошибка накачивания класс com.mondo.tbuddy.mainmap $ Lmapview

Это вызвано этой записи я нахожу в LogCat:

ERROR/AndroidRuntime (14999): Вызванный по: java.lang.NoSuchMethodException: Lmapview (Context, AttributeSet)

Если я правильно понимаю, что мое приложение рушится, потому что Android говорит он не находит соответствующий конструктор для моего настраиваемого MapView (класс Lmapview). Как вы можете видеть выше, однако, он определен и соответствует подписи, которую он ищет.

Может ли кто-нибудь дать мне некоторое представление?

Спасибо.

ответ

5

Перед созданием объекта суперкласса нельзя создать экземпляр внутреннего нестатического класса. Из-за этого вы должны сделать внутренний класс статическим или переместить его в отдельный класс.

+0

его не только внутренний класс, его частный, тоже – WarrenFaith

+0

это тоже, конечно :) – Key

+0

Я не понимаю решения :( – max4ever