【问题标题】:The file is invalid: ERROR getting 'android:name' attribute: attribute is not a string value文件无效:获取“android:name”属性时出错:属性不是字符串值
【发布时间】:2013-09-18 07:24:34
【问题描述】:

这让我发疯了。我正在尝试将草稿 apk 上传到应用商店,我是一名 Windows 开发人员,这是我的第一个 android 应用程序,所以我真的没有参考框架来工作。我导出签名的 apk,然后从开发者控制台浏览到该 apk,选择它,然后尝试上传。我收到消息: 文件无效:获取“android:name”属性时出错:属性不是字符串值。 我已将此 apk 上传到网络,并且可以在市场外成功下载、安装和运行该应用程序。我已经对 apk 进行了自签名,并验证了该操作是否正确。 任何建议将不胜感激。

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.My.PackageName"
      android:versionCode="1" android:versionName="1.0.0">  
    <application android:icon="@drawable/icon" android:label="@string/app_name">  
        <activity android:name=".Home" android:configChanges="orientation"
                android:label="@string/app_name" android:launchMode="standard" android:icon="@drawable/icon">  
              <intent-filter>  
                    <action android:name="android.intent.action.MAIN" />  
                    <category android:name="android.intent.category.LAUNCHER" />  
              </intent-filter>          
        </activity>  
        <activity android:name=".Preferences" android:label="@string/set_preferences">  </activity>  
        <activity android:name="com.admob.android.ads.AdMobActivity" 
              android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
              android:configChanges="orientation|keyboard|keyboardHidden"
        />                
        <meta-data android:value="myValue" android:name="ADMOB_PUBLISHER_ID" />  
        <meta-data android:value="true" android:name="ADMOB_ALLOW_LOCATION_FOR_ADS" />          
    </application>  
    <uses-sdk android:minSdkVersion="4" />  
    <uses-permission android:name="android.permission.INTERNET" />  
</manifest>`

【问题讨论】:

  • 听起来您的清单中有错误。
  • 请发布您的清单,以便我们查看
  • 抱歉,我已更新问题以包含 AndroidManifest.xml。我确定错误在那里,并且与无效或缺少的名称属性有关,但是从上到下我没有看到错误可能在哪里

标签: android google-play


【解决方案1】:

Activity 声明中缺少 label 属性不会成为 aapt debug badging 失败的原因!您可以将它们排除在您的 Activity 声明之外,而不会出现问题。

这些失败的常见原因是一个字符串资源,它在一个已翻译资源中声明,而在未翻译的主资源文件夹中丢失。

res
  values
    strings.xml <-- missing declaration here
  values-it
    strings.xml <-- of a string declared here and used in manifest as a label

从 /path/to/sdk/build-tools 文件夹运行 aapt 命令以查找有关此错误的更多信息:

aapt debug badging /path/to/apk

【讨论】:

    【解决方案2】:

    您似乎忘记设置名称属性或在 AndroidManifest.xml 中设置了无效属性

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题。发现了问题 - 我错过了我的一个活动声明中的标签。在你的情况下,看起来像第三个活动。

      【讨论】:

        猜你喜欢
        • 2013-06-05
        • 1970-01-01
        • 2017-08-18
        • 2011-05-27
        • 2016-08-13
        • 1970-01-01
        • 1970-01-01
        • 2015-02-09
        • 1970-01-01
        相关资源
        最近更新 更多