我正在使用Fused Location Provider开发应用程序。我收到错误"不幸的是,appname已经停止"当我试图运行该程序。 Eclipse没有显示任何错误,但logcat中存在错误。我不知道如何解决它们。我下载了源代码here。请帮我理解我做错了什么?
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
答案 0 :(得分:2)
因为你的例外是:
ClassNotFoundException: Didn't find class "com.kpbird.fusedlocation.MainActivity"
进入您的AndroidManifest.xml
添加您的活动所在的完整包裹:
<activity
android:name="com.kpbird.fusedlocation.MainActivity"
或确保必须更正已定义的包名称:
package="com.kpbird.fusedlocation"
我认为您在代码的某个位置错误地输入了应用程序包!
答案 1 :(得分:1)
当我将应用程序从一个目录移动到另一个目录时发生这种情况,如果@Jorgesys's solution无效,请考虑重命名模块并清理项目。注意:我使用的是Android Studio。
答案 2 :(得分:0)
在AndroidManifest
引用中包含以下内容时出现同样的问题:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
和硬编码的错误google_play_services_version
值。
答案 3 :(得分:0)
在更新MainActivity.java时,我不小心将软件包名称从package com.ppg;
更改为package com.PPG;
(大写而不是小写)。当我改回小写字母时,它开始工作。
答案 4 :(得分:0)
就我而言,问题出在 gradle
我将我的代码从 java 重构为 kotlin,但忘记在 Gradle 中添加这个
apply plugin: 'kotlin-android'
答案 5 :(得分:-5)
在这个问题上花了很多时间后我终于得到了解决方案。
只需从类的构造函数中删除setContentView(R.layout.LAYOUT_NAME);
即可
并将其放入类的onCreate
方法中。
100%它将被解决。