При запуске программы Google Map происходит сбой - PullRequest
1 голос
/ 25 марта 2012

Я пытался добавить карту в свое приложение, я следовал инструкциям руководства для разработчиков Android HelloGoogleMaps, но моя карта просто принудительно закрывается при запуске опции карт. Я получил разрешение на вход в мой ключ API в манифесте

  <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.MappDemo.mymaps"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" />


    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" android:debuggable="true" >
        <activity
            android:name=".MappingDemoActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                 <uses-library android:name="com.google.android.maps" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>
        <activity android:name=".ShowTheMap" android:label="Lat/Long Location"> </activity>
        <activity android:name=".MapMe" android:label="Track Present Location"> </activity>
        <uses-library android:name="com.google.android.maps" />
         <uses-permission android:name="android.permission.INTERNET" />
          <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    </application>

</manifest>

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

03-25 11:50:52.217: I/Process(687): Sending signal. PID: 687 SIG: 9
03-25 11:51:00.557: D/AndroidRuntime(729): Shutting down VM
03-25 11:51:00.567: W/dalvikvm(729): threadid=1: thread exiting with uncaught exception (group=0x40015560)
03-25 11:51:00.627: E/AndroidRuntime(729): FATAL EXCEPTION: main
03-25 11:51:00.627: E/AndroidRuntime(729): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.MappDemo.mymaps/com.MappDemo.mymaps.MappingDemoActivity}: java.lang.ClassCastException: com.MappDemo.mymaps.MappingDemoActivity
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.os.Looper.loop(Looper.java:123)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.ActivityThread.main(ActivityThread.java:3683)
03-25 11:51:00.627: E/AndroidRuntime(729):  at java.lang.reflect.Method.invokeNative(Native Method)
03-25 11:51:00.627: E/AndroidRuntime(729):  at java.lang.reflect.Method.invoke(Method.java:507)
03-25 11:51:00.627: E/AndroidRuntime(729):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-25 11:51:00.627: E/AndroidRuntime(729):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-25 11:51:00.627: E/AndroidRuntime(729):  at dalvik.system.NativeStart.main(Native Method)
03-25 11:51:00.627: E/AndroidRuntime(729): Caused by: java.lang.ClassCastException: com.MappDemo.mymaps.MappingDemoActivity
03-25 11:51:00.627: E/AndroidRuntime(729):  at com.MappDemo.mymaps.MappingDemoActivity.onCreate(MappingDemoActivity.java:19)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
03-25 11:51:00.627: E/AndroidRuntime(729):  ... 11 more
03-25 11:51:10.013: I/Process(729): Sending signal. PID: 729 SIG: 9
03-25 11:52:16.817: D/AndroidRuntime(782): Shutting down VM
03-25 11:52:16.817: W/dalvikvm(782): threadid=1: thread exiting with uncaught exception (group=0x40015560)
03-25 11:52:16.877: E/AndroidRuntime(782): FATAL EXCEPTION: main
03-25 11:52:16.877: E/AndroidRuntime(782): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.MappDemo.mymaps/com.MappDemo.mymaps.MappingDemoActivity}: java.lang.ClassCastException: com.MappDemo.mymaps.MappingDemoActivity
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.os.Looper.loop(Looper.java:123)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.ActivityThread.main(ActivityThread.java:3683)
03-25 11:52:16.877: E/AndroidRuntime(782):  at java.lang.reflect.Method.invokeNative(Native Method)
03-25 11:52:16.877: E/AndroidRuntime(782):  at java.lang.reflect.Method.invoke(Method.java:507)
03-25 11:52:16.877: E/AndroidRuntime(782):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-25 11:52:16.877: E/AndroidRuntime(782):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-25 11:52:16.877: E/AndroidRuntime(782):  at dalvik.system.NativeStart.main(Native Method)
03-25 11:52:16.877: E/AndroidRuntime(782): Caused by: java.lang.ClassCastException: com.MappDemo.mymaps.MappingDemoActivity
03-25 11:52:16.877: E/AndroidRuntime(782):  at com.MappDemo.mymaps.MappingDemoActivity.onCreate(MappingDemoActivity.java:19)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
03-25 11:52:16.877: E/AndroidRuntime(782):  ... 11 more

это то, что я вижу в logcat .. это то, что я имею в mappingDemoActivity.java

public class MappingDemoActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //add listners for all buttons
        View firstbutton= findViewById(R.id.geocode_button);
        firstbutton.setOnClickListener((OnClickListener) this);
        View secondButton = findViewById(R.id.latlong_button);
        secondButton.setOnClickListener((OnClickListener) this);
        View thirdButton = findViewById(R.id.presentLocation_button);
        thirdButton.setOnClickListener((OnClickListener) this);

    }

    public void onClick(View v)
    {
        switch(v.getId())
        {
        case R.id.geocode_button:
             Log.i("Button","Button 1 pushed");
             Intent j = new Intent(this, ShowTheMap.class);
             startActivity(j);
         break;

         case R.id.latlong_button:
             Log.i("Button","Button 2 pushed");
             Intent k = new Intent(this, ShowTheMap.class);
             startActivity(k);
         break;

         case R.id.presentLocation_button:
             Log.i("Button","Button 3 pushed");
             Intent m = new Intent(this, MapMe.class);
             startActivity(m);
         break; 
        }

    }

Ответы [ 3 ]

0 голосов
/ 31 марта 2012

Удалите этот код, который находится внутри <intent-filter>

`<uses-library android:name="com.google.android.maps" />`

, поскольку он уже есть в приведенной ниже цитате.

0 голосов
/ 18 апреля 2012

Посмотрите на Google MapsDemo, который включен в SDK, мой путь:

C: \ Android-SDK \ дополнения \ аддон-google_apis-google_inc_-10 \ образцы \ MapsDemo

У меня была довольно неприятная проблема ( MapActivity падает на некоторых устройствах ), которая появлялась только на определенных (!) Устройствах Android и также отсутствовала в эмуляторе. Что я сделал, так это снял рабочую демонстрацию, пока она не стала похожа на мой основной пример. Затем оказалось, что телефоны Samsung не принимают имена пакетов, не начинающиеся с com. , в то время как другие устройства (HTC Flyer) -! Но это не ваша проблема, так как вы используете com. имя пакета.

Возможно, мне в голову приходит еще одна вещь. Вы не опубликовали свой main.xml. Если вы используете вложенный LinearLayout под MapView, это также приводит к сбою приложения. Поверх MapView все работает нормально. Так что если вы используете что-то вроде:

<LinearLayout ... >

    <com.google.android.maps.MapView ... />

    <LinearLayout ... >
        <Button .../>   
    </LinearLayout>

</LinearLayout>

Это может вызвать вашу проблему. Это воспроизводимо и выдает точно такую ​​же ошибку java.lang.ClassCastException .

Также убедитесь, что ваши операторы <Использования-разрешения> и <Использования-библиотеки> находятся в нужном месте, как говорили парни ранее. Первый должен быть прямым потомком узла . Второй должен быть прямым потомком узла .

Надеюсь, это поможет вам. Я сходил с ума от всего этого.

Бернд

0 голосов
/ 25 марта 2012
Тег

<uses-permission> должен быть дочерним по отношению к <manifest>, а не <application>.Попробуйте изменить <uses-permission> позицию, это может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...