我有一个应用,让我们称之为“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”
,这对我的手机和模拟器再次正常工作,但在其他一些设备上失败。如果我完全省略此属性,它将根本不允许我安装。
有什么想法吗?