从 APK 安装应用程序时出现 java.lang.ClassNotFoundException [英] java.lang.ClassNotFoundException when install app from APK
问题描述
我在下面描述的错误发生在:
- 直接从 APK 将应用安装到设备上.
- 通过 Play 商店下载应用
在以下情况下不会发生错误:
- 按运行"按钮通过 Eclipse 安装 apk
java.lang.RuntimeException: 无法实例化活动 ComponentInfo{my.package/my.package.MainActivity}:
java.lang.ClassNotFoundException: my.package.MainActivity
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1998)在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099)在 android.app.ActivityThread.access$600(ActivityThread.java:138)在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)在 android.os.Handler.dispatchMessage(Handler.java:99)在 android.os.Looper.loop(Looper.java:137)在 android.app.ActivityThread.main(ActivityThread.java:4929)在 java.lang.reflect.Method.invokeNative(Native Method)在 java.lang.reflect.Method.invoke(Method.java:511)在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)在 dalvik.system.NativeStart.main(本机方法)引起:java.lang.ClassNotFoundException:my.package.MainActivity在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)在 java.lang.ClassLoader.loadClass(ClassLoader.java:501)在 java.lang.ClassLoader.loadClass(ClassLoader.java:461)在 android.app.Instrumentation.newActivity(Instrumentation.java:1056)在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1989)……还有 11 个
我一如既往地导出APk,从使用导出向导导出并签署APK"
知道它来自 APK 而不是直接来自 eclipse 吗?
以上错误是我自己造成的.但是用户的报告有些不同:
用户 1:
<块引用>java.lang.RuntimeException:无法实例化活动组件信息{my.package/my.package.MainActivity}:java.lang.ClassNotFoundException: 没有找到类路径上的my.package.MainActivity":DexPathList[dexElements=[zip file]"/data/app/my.package-1.apk"],nativeLibraryDirectories=[/data/app-lib/my.package-1,/vendor/lib,/system/lib]]
用户 2:
<块引用>java.lang.RuntimeException:无法实例化活动组件信息{my.package/my.package.MainActivity}:java.lang.ClassNotFoundException: 没有找到类路径上的my.package.MainActivity":DexPathList[[zip 文件"/data/app/my.package-1.apk"],nativeLibraryDirectories=[/data/app-lib/my.package-1,/vendor/lib,/system/lib]]
清单:
<块引用><申请机器人:allowBackup =真"android:icon="@drawable/motion"android:label="@string/app_name"机器人:大堆=真"android:theme="@style/Theme.AppCompat.Light" ><活动android:name="my.package.MainActivity"android:label="@string/app_name" ><意图过滤器><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></意图过滤器></活动><activity android:name="my.package.AlarmsListActivity"android:theme="@style/dialogTheme"/><activity android:name="my.package.ImagenesActivity"/><activity android:name="my.package.EndActivity"/></应用程序></清单>
我在 MainActivity 中使用了以下库
这是你的错误:
java.lang.RuntimeException:无法实例化活动 ComponentInfo{my.package/my.package.MainActivity}:java.lang.ClassNotFoundException:在路径上找不到类my.package.MainActivity":DexPathList[dexElements=[zip 文件/data/app/my.package-1.apk"],nativeLibraryDirectories=[/data/app-lib/my.package-1,/vendor/lib,/system/lib]]
解决方案:
您已添加库项目作为对您项目的引用,也可能是您在 libs<中为
>ChartView
和 support-v7
添加了 jar 文件/code> 文件夹,也可以作为 Add External Jars
.因此,您必须在 order and export menu
中启用 android-support-v7.jar
文件和 chartview jar
文件的复选框.
它的路径是,
项目 - 右键单击 - 属性 - Java 构建路径 - 订购和导出菜单.
最后,您需要清理并运行您的项目.
The error I describe below, occurs when:
- Install the app on a device directly from the APK.
- Download the app by Play Store
The error don´t occurs when:
- Install apk through Eclipse pressing the 'run' button
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{my.package/my.package.MainActivity}:
java.lang.ClassNotFoundException: my.package.MainActivity
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1998) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099) at android.app.ActivityThread.access$600(ActivityThread.java:138) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4929) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: my.package.MainActivity at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) at java.lang.ClassLoader.loadClass(ClassLoader.java:501) at java.lang.ClassLoader.loadClass(ClassLoader.java:461) at android.app.Instrumentation.newActivity(Instrumentation.java:1056) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1989) ... 11 more
To export the APk I do as always, from "Use the Export Wizard to export and sign an APK"
Any idea because it occurs from the APK but not directly from eclipse?
The above error is generated by me. But reports of users are somewhat different:
User1:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{my.package/my.package.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "my.package.MainActivity" on path: DexPathList[dexElements=[zip file "/data/app/my.package-1.apk"],nativeLibraryDirectories=[/data/app-lib/my.package-1, /vendor/lib, /system/lib]]
User2:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{my.package/my.package.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "my.package.MainActivity" on path: DexPathList[[zip file "/data/app/my.package-1.apk"],nativeLibraryDirectories=[/data/app-lib/my.package-1, /vendor/lib, /system/lib]]
Manifest:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="my.package" android:versionCode="12" android:versionName="2.3" > <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="21" /> <application android:allowBackup="true" android:icon="@drawable/motion" android:label="@string/app_name" android:largeHeap="true" android:theme="@style/Theme.AppCompat.Light" > <activity android:name="my.package.MainActivity" 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="my.package.AlarmsListActivity" android:theme="@style/dialogTheme"/> <activity android:name="my.package.ImagenesActivity"/> <activity android:name="my.package.EndActivity" /> </application> </manifest>
I use the following libraries in MainActivity
This is your error:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{my.package/my.package.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "my.package.MainActivity" on path: DexPathList[dexElements=[zip file "/data/app/my.package-1.apk"],nativeLibraryDirectories=[/data/app-lib/my.package-1, /vendor/lib, /system/lib]]
Solution:
You have added library project as a reference to your project and also may be you have added jar files for ChartView
and support-v7
in your libs
folder and also as a Add External Jars
. So you have to enable both checkboxes for android-support-v7.jar
file and for chartview jar
file in order and export menu
.
The path for it is,
Project - Right Click - Properties - Java Build Path - Order and Export Menu.
Finally you need to clean and run your project.
这篇关于从 APK 安装应用程序时出现 java.lang.ClassNotFoundException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!