【问题标题】:Unable to instantiate application - AndroidManifest settings无法实例化应用程序 - AndroidManifest 设置
【发布时间】:2014-01-11 13:35:26
【问题描述】:

我们最近开发了一款 Android 应用并通过 Google Play 发布。首先,我们创建了一个 beta 测试组,向其中添加了成员​​,并从每个人那里获得了反馈等。我们在用户设备上发布和安装此测试版没有问题。

我们将此测试版(API 级别 14+)升级为生产,但安装后应用突然开始失败并出现以下错误:

java.lang.RuntimeException: Unable to instantiate application x.x.x.App:
java.lang.ClassNotFoundException: x.x.x.App

在 AndroidManifest 文件中,Application 的 name 属性是完整的包名 x.x.x.App。我们将其更改为只是类名 App,一切都开始顺利进行。

但是,客户决定让应用与 API 10 - 13 兼容,我们相应地对 AndroidManifest 文件进行了更改。我们只是更改了 minSDK=10。我们再次进行了 beta 测试过程,没有其他错误等。

然后我们决定将这个应用程序推广到生产环境,现在我们得到了同样的错误

java.lang.RuntimeException: Unable to instantiate application x.x.x.App:
java.lang.ClassNotFoundException: x.x.x.App

在安装/升级到这个新版本时再次出现。

这里到底发生了什么 - 我需要一个解释(如果存在的话),因为我无法找到它的任何含义?

编辑:清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.expatindenmark.adquota"
    android:versionCode="8"
    android:versionName="3.2" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="18" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_CALENDAR" />
    <uses-permission android:name="android.permission.WRITE_CALENDAR" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:name="App"
        android:allowBackup="false"
        android:icon="@drawable/ic_launcher_hoejtid_ikon"
        android:label="@string/app_name" >
        <activity
            android:name="com.expatindenmark.adquota.SplashActivity"
            android:configChanges="locale"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.expatindenmark.adquota.AdquotaTabActivity"
            android:configChanges="locale"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.NoTitleBar" >
        </activity>
     </application>

</manifest>

【问题讨论】:

  • 发布您的清单文件...
  • 您在之前的清单或证书中是否有任何更改。
  • 我们在新版本中唯一改变的是 minSDK - 将 14 替换为 10。
  • @PiyushGupta 好的 - 我将 name = "App" 更改为 name = ".App",现在它可以工作了。这很烦人,缺乏一致性是可怕的!我仍然需要某种解释,为什么这个问题会出现在已经投入生产的应用中。

标签: android android-manifest apk


【解决方案1】:

如之前的评论中所述,我将 name = "App" 更改为 name = ".App" 并且有效。

【讨论】:

    猜你喜欢
    • 2020-02-24
    • 2011-08-17
    • 2013-07-31
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    相关资源
    最近更新 更多