当前位置: 首页 > 面试题库 >

错误“引起原因:java.lang.ClassNotFoundException:”

越胤
2023-03-14
问题内容

在关于sqlite的android vogella教程期间,我遇到了令人讨厌的问题,并出现以下错误:

09-05 09:18:06.127: E/AndroidRuntime(981): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.de.vogella.android.todos.contentprovider.MyTodoContentProvider" on path: DexPathList[[zip file "/data/app/com.example.de.vogella.android.todos-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.de.vogella.android.todos-1, /system/lib]]

我无数次地一步步修改所有文件,以正确重新创建R. class。关于此错误的非常奇怪的是,我不知道为什么在“
com.example.de.vogella.android”中有关于“
com.example”的任何内容。这是某种标准生成的名称吗?我所有的包/名称/路径都从未以“
com.example”开头(在此项目中)。我检查了所有文件,找不到问题。

LogCat的更多输出:

09-05 09:18:06.127: E/AndroidRuntime(981): FATAL EXCEPTION: main
09-05 09:18:06.127: E/AndroidRuntime(981): java.lang.RuntimeException: Unable to get provider com.example.de.vogella.android.todos.contentprovider.MyTodoContentProvider: java.lang.ClassNotFoundException: Didn't find class "com.example.de.vogella.android.todos.contentprovider.MyTodoContentProvider" on path: DexPathList[[zip file "/data/app/com.example.de.vogella.android.todos-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.de.vogella.android.todos-1, /system/lib]]
09-05 09:18:06.127: E/AndroidRuntime(981):  at android.app.ActivityThread.installProvider(ActivityThread.java:4882)
09-05 09:18:06.127: E/AndroidRuntime(981):  at android.app.ActivityThread.installContentProviders(ActivityThread.java:4485)
09-05 09:18:06.127: E/AndroidRuntime(981):  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4425)
09-05 09:18:06.127: E/AndroidRuntime(981):  at android.app.ActivityThread.access$1300(ActivityThread.java:141)
09-05 09:18:06.127: E/AndroidRuntime(981):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
09-05 09:18:06.127: E/AndroidRuntime(981):  at android.os.Handler.dispatchMessage(Handler.java:99)
09-05 09:18:06.127: E/AndroidRuntime(981):  at android.os.Looper.loop(Looper.java:137)
09-05 09:18:06.127: E/AndroidRuntime(981):  at android.app.ActivityThread.main(ActivityThread.java:5103)
09-05 09:18:06.127: E/AndroidRuntime(981):  at java.lang.reflect.Method.invokeNative(Native Method)
09-05 09:18:06.127: E/AndroidRuntime(981):  at java.lang.reflect.Method.invoke(Method.java:525)
09-05 09:18:06.127: E/AndroidRuntime(981):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-05 09:18:06.127: E/AndroidRuntime(981):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-05 09:18:06.127: E/AndroidRuntime(981):  at dalvik.system.NativeStart.main(Native Method)
09-05 09:18:06.127: E/AndroidRuntime(981): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.de.vogella.android.todos.contentprovider.MyTodoContentProvider" on path: DexPathList[[zip file "/data/app/com.example.de.vogella.android.todos-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.de.vogella.android.todos-1, /system/lib]]
09-05 09:18:06.127: E/AndroidRuntime(981):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
09-05 09:18:06.127: E/AndroidRuntime(981):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
09-05 09:18:06.127: E/AndroidRuntime(981):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
09-05 09:18:06.127: E/AndroidRuntime(981):  at android.app.ActivityThread.installProvider(ActivityThread.java:4867)
09-05 09:18:06.127: E/AndroidRuntime(981):  ... 12 more
09-05 09:18:06.156: E/ActivityThread(950): Failed to find provider info for de.vogella.android.todos.contentprovider

通常,应用程序启动但从输出开始就崩溃:

Unfortunatelly, {AppName} has stopped.

我的AndroidManifest.xml看起来像这样

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

    <uses-sdk
        android:minSdkVersion="13"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/reminder"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".TodosOverviewActivity"
            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=".TodoDetailActivity"
            android:windowSoftInputMode="stateVisible|adjustResize"
            android:label="@string/title_activity_todo_detail" >
        </activity>

        <provider
            android:name=".contentprovider.MyTodoContentProvider"
            android:authorities="de.vogella.android.todos.contentproviderxxxxxxx" >
        </provider>
    </application>

</manifest>

我刚开始使用android,所以我猜有一些琐碎的东西缺少。

非常感谢。

编辑 更改<provider>为:

<provider
            android:name=".contentprovider.MyTodoContentProvider"
            android:authorities="de.vogella.android.todos.contentprovider" >
        </provider>

结果是 :

Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER
Please check logcat output for more details.
Launch canceled!

使用LogCat:

09-06 02:02:38.198: E/AndroidRuntime(864): FATAL EXCEPTION: main
09-06 02:02:38.198: E/AndroidRuntime(864): java.lang.RuntimeException: Unable to get provider com.example.de.vogella.android.todos.contentprovider.MyTodoContentProvider: java.lang.ClassNotFoundException: Didn't find class "com.example.de.vogella.android.todos.contentprovider.MyTodoContentProvider" on path: DexPathList[[zip file "/data/app/com.example.de.vogella.android.todos-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.de.vogella.android.todos-1, /system/lib]]
09-06 02:02:38.198: E/AndroidRuntime(864):  at android.app.ActivityThread.installProvider(ActivityThread.java:4882)
09-06 02:02:38.198: E/AndroidRuntime(864):  at android.app.ActivityThread.installContentProviders(ActivityThread.java:4485)
09-06 02:02:38.198: E/AndroidRuntime(864):  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4425)
09-06 02:02:38.198: E/AndroidRuntime(864):  at android.app.ActivityThread.access$1300(ActivityThread.java:141)
09-06 02:02:38.198: E/AndroidRuntime(864):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
09-06 02:02:38.198: E/AndroidRuntime(864):  at android.os.Handler.dispatchMessage(Handler.java:99)
09-06 02:02:38.198: E/AndroidRuntime(864):  at android.os.Looper.loop(Looper.java:137)
09-06 02:02:38.198: E/AndroidRuntime(864):  at android.app.ActivityThread.main(ActivityThread.java:5103)
09-06 02:02:38.198: E/AndroidRuntime(864):  at java.lang.reflect.Method.invokeNative(Native Method)
09-06 02:02:38.198: E/AndroidRuntime(864):  at java.lang.reflect.Method.invoke(Method.java:525)
09-06 02:02:38.198: E/AndroidRuntime(864):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-06 02:02:38.198: E/AndroidRuntime(864):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-06 02:02:38.198: E/AndroidRuntime(864):  at dalvik.system.NativeStart.main(Native Method)
09-06 02:02:38.198: E/AndroidRuntime(864): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.de.vogella.android.todos.contentprovider.MyTodoContentProvider" on path: DexPathList[[zip file "/data/app/com.example.de.vogella.android.todos-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.de.vogella.android.todos-1, /system/lib]]
09-06 02:02:38.198: E/AndroidRuntime(864):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
09-06 02:02:38.198: E/AndroidRuntime(864):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
09-06 02:02:38.198: E/AndroidRuntime(864):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
09-06 02:02:38.198: E/AndroidRuntime(864):  at android.app.ActivityThread.installProvider(ActivityThread.java:4867)
09-06 02:02:38.198: E/AndroidRuntime(864):  ... 12 more
09-06 02:02:38.236: E/ActivityThread(834): Failed to find provider info for de.vogella.android.todos.contentprovider

问题答案:

我曾经有这个问题。该代码以前可以运行,但是当我同步并构建了旧版本的代码时,它突然停止工作(在应用启动时崩溃)。

解决方法是关闭并重新启动Eclipse并清理项目,并清理所有依赖库项目。然后它又开始正常工作。

刷新项目文件时,这是Eclipse中的某种构建问题。

更新:特别是,如果您不小心修改了“ .classpath”文件(以还原为较旧的版本),则Eclipse / Android
SDK可能会感到困惑,并且无法正确构建项目。当您重新启动Eclipse并清理项目时,Eclipse将重新修改“ .classpath”文件,并正确构建。



 类似资料:
  • 问题内容: java和slf4j的一些问题使用想法制作项目,可以。但是如果我尝试用gradle制作罐子,我会遇到一些问题。 build.gradle Test.java 终奌站: 输出: 我试图使用gradle / maven(mvn包)相同的问题。由于某些原因,它无法在类路径中找到Logger和LoggerFactory。 问题答案: 谢谢迈克尔记得关于胖子的事。在您的评论尝试谷歌搜索后:“ g

  • 问题内容: 关于Java的InterruptedException有一些有趣的问题和答案,例如Java中的InterruptedException 的原因和处理InterruptedException。但是,它们都没有告诉我InterruptedException的可能来源。 像SIGTERM,SIGQUIT,SIGINT这样的OS信号呢?在命令行上按CTRL-C是否会产生InterruptedE

  • 我对 Rust 很陌生,所以这很可能是一个愚蠢的问题。 我有几个问题。 我有这两个功能: 我这样称呼他们: 这会导致以下结果,在我看来很好: 我有两个问题: 1) 在 fn 修饰符 2(mut ptr: Box) - 2)在fn修改器3中的注释行中,即**ptr=**ptr.to_uppercase();,导致错误“错误[E0614]: type不能被取消引用”,而我可以在fn修改器2中执行相同的

  • 问题内容: 我正在使用hibernate插入到所有表均定义为非null的mysql表中。它有一个唯一的主键,并在几列上有另一个唯一的索引。 我收到以下错误: org.springframework.dao.DataIntegrityViolationException:无法执行JDBC批处理更新。SQL [插入MY_TABLE(col1,col2,col3,col4,ID_)值(?,?,?,?,?

  • 我正在测试maven及其功能。我正在尝试使用commons io将字符串写入文本文件 我已经添加了公地-io到依赖关系 波姆。xml 它编译,但当我运行它时,它抛出一个异常 我想我错过了一些东西,你能帮我指出一下吗?

  • 我想从服务器加载配置,但当我使用 XMLHttpRequest我遇到异常 ava.lang.运行时异常:karate-config.js的评估失败com.intuit.karate.ScenarioContext)场景Context.java:211)在com.intuit.karate.步骤。StepActions.java:50)在com.intuit.karate.core.FeatureE