android — Невозможно разрешить FragmentActivity на Android 2.3.3 с пакетом совместимости v4" />

Невозможно разрешить FragmentActivity на Android 2.3.3 с пакетом совместимости v4

Я создаю простое приложение hello world, чтобы узнать о пакете совместимости Android. Я могу запустить приложение на эмуляторе 3.2, но когда я запускаю его на эмуляторе 2.3.3, я получаю

10-12 11:36:14.474: WARN/dalvikvm(469): Unable to resolve superclass of Lcom/example/MyActivity; (11) 
10-12 11:36:14.564: WARN/dalvikvm(469): Link of class 'Lcom/example/MyActivity;' failed 
10-12 11:36:14.564: DEBUG/AndroidRuntime(469): Shutting down VM 
10-12 11:36:14.584: WARN/dalvikvm(469): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
10-12 11:36:14.624: ERROR/AndroidRuntime(469): FATAL EXCEPTION: main java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example/com.example.MyActivity}: java.lang.ClassNotFoundException: com.example.MyActivity in loader dalvik.system.PathClassLoader[/data/app/com.example-1.apk]

Так что очевидно, что он не может найти FragmentActivity (который является супер com.example.MyActivity). Я просто не знаю почему.

Некоторые вещи, на которые стоит обратить внимание:

1) Я следую инструкциям на http: //mobile.tutsplus.com/tutorials/android/android-compatibility-working-with-fragments/, что не очень тщательно.

2) Я уверен, что правильно встраиваю пакет совместимости в APK с maven. Я установил флягу в свой локальный репозиторий maven и собираюсь в зависимости от этого. Я думаю, что если бы я не встраивал его правильно, он не работал бы на эмуляторе 3.2.

3) Я пробовал строить с IntelliJ и плагином maven-compiler-plugin. Тот же результат.

Любая помощь будет принята с благодарностью. Спасибо.

ИЗМЕНИТЬ ... Вот манифест

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="11" />
<uses-permission android:name="android.permission.INTERNET" />

<application android:label="@string/app_name" android:icon="@drawable/icon">
    <activity android:name=".MyActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".TutViewerActivity"
              android:label="@string/app_name" >
    </activity>
</application>
<uses-sdk android:minSdkVersion="7" />

и определение MyActivity

public class MyActivity extends FragmentActivity implements TutListFragment.OnTutSelectedListener
4 голоса | спросил JJohnson 12 +04002011-10-12T21:55:25+04:00312011bEurope/MoscowWed, 12 Oct 2011 21:55:25 +0400 2011, 21:55:25

3 ответа


0

У меня была та же проблема, и проблема была в том, что пакет совместимости не был включен должным образом. Исключение является неоднозначным, так как оно говорит, что не может найти MyActivity, но полная трассировка стека покажет FragmentActivity, которое он не может связать. Проверьте область и убедитесь, что в вашем хранилище есть правильная версия, и она действительно включена во время сборки.

Если у вас все еще есть проблема, попробуйте включить ваш pom.xml здесь.

ответил Dan Osipov 1 ThuEurope/Moscow2011-12-01T04:10:42+04:00Europe/Moscow12bEurope/MoscowThu, 01 Dec 2011 04:10:42 +0400 2011, 04:10:42
0

У меня была такая же проблема, пакет совместимости не был должным образом встроен в apk. Для этого вы можете использовать следующие шаги:

От developer.android.com:

  

Чтобы добавить одну из библиотек в ваш проект Android:

In your Android project, create a directory named libs at the root of your project (next to src/, res/, etc.)
Locate the JAR file for the library you want to use and copy it into the libs/ directory.

For example, the library that supports API level 4 and up is located at <sdk>/extras/android/support/v4/android-support-v4.jar.
Add the JAR to your project build path.

In Eclipse, right-click the JAR file in the Package Explorer, select Build Path > Add to Build Path.
ответил Gunther Piez 29 J0000006Europe/Moscow 2012, 17:19:36
0

Добавьте следующее в импорт MyActivity:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;

Даже если вы не используете эти классы.

ответил t2tk 2 J0000006Europe/Moscow 2013, 16:15:53

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132