首页 文章

从APK [重复]安装应用程序时java.lang.ClassNotFoundException

提问于
浏览
2

这个问题在这里已有答案:

我在下面描述的错误发生在:

  • 直接从APK在设备上安装应用 .

  • 通过Play商店下载该应用程序

在以下情况下不会发生错误

  • 通过Eclipse按'run'按钮安装apk

java.lang.RuntimeException:无法实例化活动ComponentInfo {my.package / my.package.MainActivity}:
java.lang.ClassNotFoundException:android.app.ActivityThread.performLaunchActivity中的my.package.MainActivity(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)
at 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)
at dalvik.system.NativeStart.main(Native Method)
引起:java.lang.ClassNotFoundException:my.package.MainActivity
在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at 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而不是直接来自日食?

上面的错误是由我生成的 . 但是用户的报告有些不同:

用户1:

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]]

用户2:

java.lang.RuntimeException:无法实例化活动ComponentInfo {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]]

表现:

<?xml version =“1.0”encoding =“utf-8”?> <manifest
的xmlns:机器人= “http://schemas.android.com/apk/res/android”
包= “my.package”
机器人:的versionCode = “12”
android:versionName =“2.3”>

<用途-SDK
机器人:的minSdkVersion = “9”
android:targetSdkVersion =“21”/>

<应用
机器人:allowBackup = “真”
机器人:图标=“@绘制/运动”
机器人:标签= “@字符串/ APP_NAME”
机器人:largeHeap = “真”
android:theme =“@ style / Theme.AppCompat.Light”>

<活动
机器人:名字= “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”
机器人:主题= “@风格/ dialogTheme”/>
<activity android:name =“my.package.ImagenesActivity”/>
<activity android:name =“my.package.EndActivity”/>

</应用>

</清单>

我在MainActivity中使用以下库

enter image description here

1 回答

  • 2

    这是你的错误:

    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:

    您已添加库项目作为项目的参考,也可能是您在 libs 文件夹中添加了 ChartViewsupport-v7 的jar文件,也作为 Add External Jars . 因此,您必须为 android-support-v7.jar 文件和 order and export menu 中的 chartview jar 文件启用两个复选框 .

    它的路径是,

    Project - Right Click - Properties - Java Build Path - Order and Export Menu.
    

    最后,您需要清理并运行您的项目 .

相关问题