gpt4 book ai didi

android - 设置安卓 :versionName as reference to string resource leads to NullPointerException under the emulator

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:56:48 26 4
gpt4 key购买 nike

我正在尝试将我的 android list 中的 android:versionName 设置为对存储在外部资源文件中的字符串资源的引用。

下面是我的 AndroidManifest.xml 的摘录:

<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.toycorporation"
android:versionCode="@integer/version_code"
android:versionName="@string/version_name"
>

以及位于我项目的 res/values 目录下的 build.xml 文件的内容:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<item type="string" name="build_date">03/15/2012</item>
<item type="integer" name="version_code">315281</item>
<item type="string" name="version_name">3.15.28.1</item>
</resources>

稍后我尝试检索版本号以将其显示在我的应用程序的“关于”屏幕上。

PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(),0);
Log.d("PackageInfo", "Version name: " + String.valueOf(packageInfo.versionName));

问题描述:

当我构建应用程序并将其自动安装到我的 HTC 设备上时,一切正常。版本名称通过引用传递,在“关于”屏幕上,我得到记录在 logcat 中的版本名称值。但是,当我尝试构建应用程序并在模拟器上启动它时,我得到的是 null 而不是版本名称值。

我已经尝试使用 Eclipse 和 IDEA 构建应用程序并将其安装到模拟器。所以看起来这个问题与 IDE 无关。

更新:

出现了一个额外的东西,它不适用于这样使用 versionNameversionCode。应用程序无法部署到 Google Play。出现以下错误:

The file is invalid: ERROR getting 'android:versionCode' attribute: attribute is not an integer value

最佳答案

我认为这种方法/您如何使用它存在很多问题。

1.) 如果您可以编译 APK 并将其上传到 android 市场,并且使用了正确的版本号和名称,那么您就可以使用 android:versionCode="@integer/version_code"android:versionName 的资源引用="@string/version_name"

如果不能,则不应使用引用。

2.) 如果您要采用这种方法,为什么要尝试使用 getResources().getString(R.string.version_name) 从 packageinfo 中检索它们?

总而言之,除了能够通过构建框换出资源文件之外,我看不出这种方法有什么优势。在这种情况下,您可能需要使用后一种方法来填充您的关于屏幕。

关于android - 设置安卓 :versionName as reference to string resource leads to NullPointerException under the emulator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9722986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com