【问题标题】:Unable to resolve superclass of Landroid/support/v4/app/FragmentActivity无法解析 Landroid/support/v4/app/FragmentActivity 的超类
【发布时间】:2012-08-01 17:10:04
【问题描述】:

我有一个项目使用扩展FragmentActivityWelcomeActivity。我使用支持库,所以android-support-v4.jarlibs 文件夹中。当我运行这个应用程序时,没有任何问题。

但是,我想将 ActionBarSherlock 添加到项目中。在 ABS 项目中,我在 libs 文件夹中使用 actionbarsherlock-plugin-maps-4.1.0.jarandroid-support-v4-r6-googlemaps.jar。在我的应用程序项目中,我添加了 ABS 库,当我尝试运行该应用程序时,出现此错误:

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoStubImpl;

为了解决这个问题,我从应用程序的 libs 文件夹中删除了 android-support-v4.jar。当我现在启动我的应用程序时,应用程序崩溃并出现此 logcat:

08-01 18:59:11.182: W/dalvikvm(13338): Unable to resolve superclass of Landroid/support/v4/app/FragmentActivity; (620)
08-01 18:59:11.182: W/dalvikvm(13338): Link of class 'Landroid/support/v4/app/FragmentActivity;' failed
08-01 18:59:11.182: W/dalvikvm(13338): Unable to resolve superclass of Lcom/myapp/welcome/WelcomeActivity; (109)
08-01 18:59:11.182: W/dalvikvm(13338): Link of class 'Lcom/myapp/welcome/WelcomeActivity;' failed
08-01 18:59:11.182: E/dalvikvm(13338): Could not find class 'com.myapp.welcome.WelcomeActivity', referenced from method com.myapp.MainDispatcherActivity.startWelcomeActivity
08-01 18:59:11.182: W/dalvikvm(13338): VFY: unable to resolve const-class 690 (Lcom/myapp/welcome/WelcomeActivity;) in Lcom/myapp/MainDispatcherActivity;
08-01 18:59:11.182: D/dalvikvm(13338): VFY: replacing opcode 0x1c at 0x0002
08-01 18:59:11.182: D/dalvikvm(13338): VFY: dead code 0x0004-000b in Lcom/myapp/MainDispatcherActivity;.startWelcomeActivity ()V
08-01 18:59:11.182: D/AndroidRuntime(13338): Shutting down VM
08-01 18:59:11.182: W/dalvikvm(13338): threadid=1: thread exiting with uncaught exception (group=0x40015560)
08-01 18:59:11.182: E/AndroidRuntime(13338): FATAL EXCEPTION: main
08-01 18:59:11.182: E/AndroidRuntime(13338): java.lang.NoClassDefFoundError: com.myapp.welcome.WelcomeActivity
08-01 18:59:11.182: E/AndroidRuntime(13338):    at com.myapp.MainDispatcherActivity.startWelcomeActivity(MainDispatcherActivity.java:33)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at com.myapp.MainDispatcherActivity.startProperActivity(MainDispatcherActivity.java:26)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at com.myapp.MainDispatcherActivity.onCreate(MainDispatcherActivity.java:19)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at android.os.Handler.dispatchMessage(Handler.java:99)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at android.os.Looper.loop(Looper.java:130)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at android.app.ActivityThread.main(ActivityThread.java:3683)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at java.lang.reflect.Method.invokeNative(Native Method)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at java.lang.reflect.Method.invoke(Method.java:507)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
08-01 18:59:11.182: E/AndroidRuntime(13338):    at dalvik.system.NativeStart.main(Native Method)

我该如何解决这个问题?

编辑
我有另一个使用相同 ABS 库的项目,并且运行良好。我不知道我做了什么不同,或者哪些设置是错误的。

【问题讨论】:

    标签: android eclipse actionbarsherlock


    【解决方案1】:

    看来这个错误是因为我在AndroidManifest.xml文件中没有这行,在<application>标签中:

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

    【讨论】:

      【解决方案2】:

      点击here

      我认为在构建路径->配置构建路径->订购和导出处也是同样的问题,需要检查“android-support-v4.jar”。

      希望对你有用。

      【讨论】:

      • 这条评论很有帮助。
      • 谢谢你!就是这个。支持 Jar 已包含在列表中,但未选中。
      • 非常感谢,它确实有效。但通常将 android-support-v4.jar 添加到“android 私有库”中。为什么有时会违反这条规则?
      【解决方案3】:

      您是否为 actionbarsherlock 库项目设置了编译器合规性?右键单击库项目,转到属性。在 java 编译器下,确保合规性设置为 1.6。我遇到了类似的问题,发现合规性设置为 1.5。

      【讨论】:

        【解决方案4】:

        我自己没有遇到过,但我认为ActionBarSherlockdoc 表示您需要扩展SherlockFragmentActivity 而不是FragmentActivity。这可能不是的问题,而是一个的问题。

        【讨论】:

        • WelcomeActivity 不需要ActionBar,所以FragmentActivity 就足够了。但是,我用SherlockFragmentActivity 尝试过,但没有成功。
        • 很抱歉没有提供更多帮助!也许这个 ABS 教程 (youtube.com/watch?v=4GJ6yY1lNNY) 对你有用?我确实在 ABS google 小组上找到了一篇帖子,有人遇到了类似的问题:标准支持库与 googlemaps 之一:(groups.google.com/forum/?fromgroups#!searchin/actionbarsherlock/…)但没有得到答复。恐怕这就是我所拥有的一切。
        猜你喜欢
        • 2013-05-15
        • 1970-01-01
        • 2017-04-12
        • 2017-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多