Android应用程序在某些手机上无法加载,出现PathClassLoader错误。

6

我有一个应用,让我们称之为“com.company.foo”,其中包括一个名为“FooBar”的主Activity。在我的AndroidManifest.xml中,我有如下代码:

<application android:label="@string/app_name"
             android:icon="@drawable/icon"
             android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  >
    <activity android:name="FooBar"
              android:label="@string/app_name"
              android:configChanges="keyboardHidden|orientation" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
...
</application>

(其中的点包含我的应用程序中的其他活动)。在这种形式下,它在我的HTC desire和模拟器上运行良好。然而,从市场下载应用程序的(非常)少数人报告了崩溃

java.lang.RuntimeException:无法实例化组件信息{com.company.foo / com.company.foo.FooBar}:java.lang.ClassNotFoundException:com.company.foo.FooBar在加载器dalvik.system.PathClassLoader [ /mnt/asec/com.company.foo-1/pkg.apk]

有人建议将 android:name =“FooBar”替换为 android:name =“.FooBar”,这对我的手机和模拟器再次正常工作,但在其他一些设备上失败。如果我完全省略此属性,它将根本不允许我安装。

有什么想法吗?

2个回答

7

我在Android市场上发布了一个应用程序。有时我会收到类似的崩溃报告。看起来这不是你的错。如果你的应用程序安装在SD卡上,就可以重现此问题。请在未卸载的情况下弹出此卡,并运行您的应用程序。

更多信息可以在这里找到。


1
那个线程似乎与此相关,但迄今为止还没有比“如果失败,重新安装”更好的解决方案。之后,问题仍然可能在以后的某个阶段出现... - Kasper Peeters
我不确定这个问题能否在应用程序中修复。有些崩溃报告只是与Android系统问题有关,我们无能为力。 - Michael

0

你展示的代码没问题,我看不出有什么错误 - 那你还查看了哪些方面呢?

  1. 你是否检查了SDK级别与失败的Android版本之间的兼容性?有可能存在不兼容性吗?

  2. 我发现实例化活动是一个非常棘手的问题,有很多事情可能会出错 - 你需要回顾所有的支持文件,并确保它们是干净的,但要考虑不兼容性。

  3. 你没有说涉及到哪些导入 - 你是否尝试将应用程序缩减到最少,并查看它是否仍然会在这些少数叛逆手机上出现问题 - 也许你无法访问这些手机?

  4. 尝试发布引起问题的手机品牌/型号,以及如何访问你的应用程序,这里可能有人拥有相同的品牌/型号,愿意为你做一些测试。

很抱歉我不能提供更多帮助,

祝你好运!

Oliver


所有的观点都很好,但我不知道这个问题出现在哪个手机品牌/型号上(我只能看到市场仪表板上有限的信息)。它肯定不是第一个观点。 - Kasper Peeters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接