【问题标题】:DirectionalViewPager ClassNotFoundExceptionDirectionalViewPager ClassNotFoundException
【发布时间】:2013-02-05 20:18:58
【问题描述】:

我正在使用库 android-directionalviewpager-1.2.1fixed.jar 中的 DirectionalViewPager 和 android.support.v4 (r11)。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical" >
   <android.support.v4.view.DirectionalViewPager
     android:id="@+id/pager"
     android:layout_width="fill_parent"
     android:layout_height="0dp"
     android:layout_weight="1"  />
</LinearLayout>

当我运行应用程序时出现错误:

E/AndroidRuntime(15335):致命异常:主要 E/AndroidRuntime(15335):java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.w/com.example.w.MainActivity}:android.view.InflateException:二进制 XML 文件第 6 行:膨胀类 android.support.v4.view.DirectionalViewPager 时出错 E/AndroidRuntime(15335):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1654) E/AndroidRuntime(15335):在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1670) E/AndroidRuntime(15335): 在 android.app.ActivityThread.access$1500(ActivityThread.java:117) E/AndroidRuntime(15335): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) E/AndroidRuntime(15335):在 android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(15335): 在 android.os.Looper.loop(Looper.java:130) E/AndroidRuntime(15335): 在 android.app.ActivityThread.main(ActivityThread.java:3695) E/AndroidRuntime(15335):在 java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(15335):在 java.lang.reflect.Method.invoke(Method.java:507) E/AndroidRuntime(15335):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) E/AndroidRuntime(15335): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) E/AndroidRuntime(15335): 在 dalvik.system.NativeStart.main(Native Method) E/AndroidRuntime(15335):原因:android.view.InflateException:二进制 XML 文件第 6 行:错误膨胀类 android.support.v4.view.DirectionalViewPager E/AndroidRuntime(15335):在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581) E/AndroidRuntime(15335): 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:623) E/AndroidRuntime(15335):在 android.view.LayoutInflater.inflate(LayoutInflater.java:408) E/AndroidRuntime(15335): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:320) E/AndroidRuntime(15335):在 android.view.LayoutInflater.inflate(LayoutInflater.java:276) E/AndroidRuntime(15335):在 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207) E/AndroidRuntime(15335):在 android.app.Activity.setContentView(Activity.java:1657) E/AndroidRuntime(15335):在 com.example.w.MainActivity.onCreate(MainActivity.java:12) E/AndroidRuntime(15335):在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) E/AndroidRuntime(15335):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1618) E/AndroidRuntime(15335): ... 11 更多 E/AndroidRuntime(15335): 引起: java.lang.ClassNotFoundException: android.support.v4.view.DirectionalViewPager in loader dalvik.system.PathClassLoader[/data/app/com.example.w-2.apk ] E/AndroidRuntime(15335):在 dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) E/AndroidRuntime(15335): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:551) E/AndroidRuntime(15335):在 java.lang.ClassLoader.loadClass(ClassLoader.java:511) E/AndroidRuntime(15335):在 android.view.LayoutInflater.createView(LayoutInflater.java:471) E/AndroidRuntime(15335):在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570) E/AndroidRuntime(15335): ... 20 更多

我做错了什么? 我读了this quation,但没有得到答案。

【问题讨论】:

    标签: android


    【解决方案1】:

    我遇到了类似的问题,原因是DirectionalViewPager库使用的android-support-v4.jar库是旧版本,与当前使用的开发版本不兼容。也许您可以使用以下库进行替换。 https://github.com/castorflex/VerticalViewPager

    另外,你也可以参考下面的链接,可能会有帮助。

    Error including Android-DirectionalViewPager .jar in Eclipse

    【讨论】:

    • 谢谢!!!我到处都放了一个版本的支持库,它的工作!
    【解决方案2】:

    这是因为这个类不是支持库的一部分。

    试试这个:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
    android:orientation="vertical" >
    <com.directionalviewpager.DirectionalViewPager
     android:id="@+id/pager"
     android:layout_width="fill_parent"
     android:layout_height="0dp"
     android:layout_weight="1"  />
    </LinearLayout>
    

    您可以在此处找到如何使用它的说明: https://github.com/JakeWharton/Android-DirectionalViewPager

    【讨论】:

    • 这行不通。我得到了同样的例外。是的?我读了说明。但我使用 android.support.v4 r11。我只在我的项目中包含 android-directionalviewpager-1.2.1fixed.jar。
    • 您应该添加整个库。在这里:stackoverflow.com/questions/8248196/… 你有指导如何做到这一点。如果它适用于 r4,这意味着在这个库中可能使用了支持库 v4,尝试更新这个库中的支持库。右键单击您的 lib 项目并转到 Android->AddSupportLibrary。它应该获得最新版本。
    • 这就是我所做的: 1. 在 android 中创建了新项目。 2. 将 android-directionalviewpager-1.2.1fixed.jar 放到 library/target 并添加 jar 到项目中。比
    • 3.创建android现有项目(来自github的库)
    • 运行get异常后:[2013-02-06 01:44:40 - Dex Loader] 无法执行dex:多个dex文件定义Landroid/support/v4/app/ActivityCompatHoneycomb; [2013-02-06 01:44:40 - w] 转换为 Dalvik 格式失败:无法执行 dex:多个 dex 文件定义 Landroid/support/v4/app/ActivityCompatHoneycomb;
    猜你喜欢
    • 2012-11-28
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2018-12-23
    • 2021-03-22
    相关资源
    最近更新 更多