从 APK 安装应用程序时出现 java.lang.ClassNotFoundException [英] java.lang.ClassNotFoundException when install app from APK

查看:24
本文介绍了从 APK 安装应用程序时出现 java.lang.ClassNotFoundException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  • 直接从 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<中为 ChartViewsupport-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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆