Android java.lang.ClassNotFoundException错误 - 但是有类

时间:2014-03-01 13:55:58

标签: android classnotfoundexception

我正在创建一个可以做很多事情的Android应用程序,而且我遇到了这个困扰我几天的问题。我的Google-Fu没有削减它,我不得不求助于这个。

我创建了一个来自CyanogenMod项目的工作类,并开始实施和修改它。现在,在我开始修改任何内容之前,我想确保它能够正常运行(正如您所希望的那样)。就在我这个错误的时候:

03-01 13:45:13.340: E/AndroidRuntime(8394): FATAL EXCEPTION: main
03-01 13:45:13.340: E/AndroidRuntime(8394): Process: com.ultima.settings, PID: 8394
03-01 13:45:13.340: E/AndroidRuntime(8394): java.lang.RuntimeException: Unable to start activity     ComponentInfo{com.ultima.settings/com.ultima.settings.SettingsActivity}: android.view.InflateException: Binary XML file line #142: Error inflating class com.settings.ultima.NumberPickerPreference

以及稍后的日志,我认为是有意义的:

03-01 13:45:13.340: E/AndroidRuntime(8394): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.settings.ultima.NumberPickerPreference" on path: DexPathList[[zip file "/system/app/UltimaControl.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
03-01 13:45:13.340: E/AndroidRuntime(8394):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
03-01 13:45:13.340: E/AndroidRuntime(8394):     at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
03-01 13:45:13.340: E/AndroidRuntime(8394):     at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
03-01 13:45:13.340: E/AndroidRuntime(8394):     at android.preference.GenericInflater.createItem(GenericInflater.java:375)
03-01 13:45:13.340: E/AndroidRuntime(8394):     at android.preference.GenericInflater.createItemFromTag(GenericInflater.java:430)
03-01 13:45:13.340: E/AndroidRuntime(8394):     ... 25 more

现在,班级就在那里。它不依赖于任何库或任何东西(我知道,它使用的是NumberPicker,它在Android v19源代码中,无论如何都包含在内)。

我在编译后尝试了baksmali-ing,确实有类(smali文件)。

没有构建错误,如果我删除它:

<com.settings.ultima.NumberPickerPreference
        android:key="pref_key_workspaceRows"
        android:title="@string/launcher_title_workspace_rows"
        ultima:min="1"
        ultima:max="10" />
来自preferences.xml的

它不再强制关闭,或者给出任何类型的错误。

我对可能出现的问题感到茫然:(

编辑:

这是CyanogenMod project我分叉了,我正在编辑。

我正在编辑NumberPreference和preferences.xml并将它们添加到我自己的应用程序中(为设置中的其他内容腾出空间 - 很难解释)。

显然这些是原件,而不是我的应用程序中的原件,但我已经做了必要的改动。更改了包名等。

0 个答案:

没有答案