[英]java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{…}: java.lang.ClassNotFoundException: Didn't find class
I am developing an app using Fused Location Provider. 我正在使用Fused Location Provider开发应用程序。 I am getting an error "Unfortunately, appname has stopped" when i attempt to run the program. 当我尝试运行程序时,我收到错误“不幸的是,appname已停止”。 Eclipse doesnt show that there are any mistakes but there are errors in the logcat. Eclipse没有显示任何错误,但logcat中存在错误。 I dont know how to fix them. 我不知道如何解决它们。 I downloaded source code here . 我在这里下载了源代码。 Please help me to understand what I did wrong? 请帮我理解我做错了什么?
LogCat logcat的
11-05 08:31:41.641: E/AndroidRuntime(795): FATAL EXCEPTION: main
11-05 08:31:41.641: E/AndroidRuntime(795): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.kpbird.fusedlocation/com.kpbird.fusedlocation.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.kpbird.fusedlocation.MainActivity" on path: DexPathList[[zip file "/data/app/com.kpbird.fusedlocation-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.kpbird.fusedlocation-1, /system/lib]]
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
11-05 08:31:41.641: E/AndroidRuntime(795): at android.os.Handler.dispatchMessage(Handler.java:99)
11-05 08:31:41.641: E/AndroidRuntime(795): at android.os.Looper.loop(Looper.java:137)
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.ActivityThread.main(ActivityThread.java:5103)
11-05 08:31:41.641: E/AndroidRuntime(795): at java.lang.reflect.Method.invokeNative(Native Method)
11-05 08:31:41.641: E/AndroidRuntime(795): at java.lang.reflect.Method.invoke(Method.java:525)
11-05 08:31:41.641: E/AndroidRuntime(795): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-05 08:31:41.641: E/AndroidRuntime(795): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-05 08:31:41.641: E/AndroidRuntime(795): at dalvik.system.NativeStart.main(Native Method)
11-05 08:31:41.641: E/AndroidRuntime(795): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.kpbird.fusedlocation.MainActivity" on path: DexPathList[[zip file "/data/app/com.kpbird.fusedlocation-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.kpbird.fusedlocation-1, /system/lib]]
11-05 08:31:41.641: E/AndroidRuntime(795): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
11-05 08:31:41.641: E/AndroidRuntime(795): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-05 08:31:41.641: E/AndroidRuntime(795): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
11-05 08:31:41.641: E/AndroidRuntime(795): ... 11 more
Since your exception is: 由于你的例外是:
ClassNotFoundException: Didn't find class "com.kpbird.fusedlocation.MainActivity"
into your AndroidManifest.xml
add the complete package were your activity is located: 在您的AndroidManifest.xml
添加您的活动所在的完整包:
<activity
android:name="com.kpbird.fusedlocation.MainActivity"
or be sure to have to correct package name defined: 或者一定要纠正定义的包名:
package="com.kpbird.fusedlocation"
I think you typed incorrectly the package of your application in some place of your code! 我认为您在代码的某个位置错误地键入了应用程序的包!
This happened when I moved an app from one directory to another once, if @Jorgesys's solution doesn't help, consider renaming the module and cleaning the project. 这种情况发生在我将应用程序从一个目录移动到另一个目录时,如果@ Jorgesys的解决方案无效,请考虑重命名模块并清理项目。 Note: I was using Android Studio. 注意:我使用的是Android Studio。
The same issue occurs while including in AndroidManifest
reference with: 在AndroidManifest
参考中包含以下内容时会出现同样的问题:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
and hardcoded wrong google_play_services_version
value. 和硬编码错误的google_play_services_version
值。
While updating my MainActivity.java I accidentally changed my package name from package com.ppg;
在更新我的MainActivity.java时,我意外地从package com.ppg;
更改了我的包名package com.ppg;
to package com.PPG;
package com.PPG;
(upper case instead of lower case). (大写而不是小写)。 When I changed back to lower case it started working. 当我改回小写时,它开始工作了。
After spending much time on this problem i finally got the solution. 花了很多时间在这个问题后,我终于得到了解决方案。
Just remove setContentView(R.layout.LAYOUT_NAME);
只需删除setContentView(R.layout.LAYOUT_NAME);
from constructor of class and put it into onCreate
method of the class. 从类的构造函数并将其放入类的onCreate
方法。
100% it will be solved. 100%它将被解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.