gpt4 book ai didi

android - 在 Android 1.5 上运行应用程序时的 NotFoundException 和 FileNotFoundException

转载 作者:搜寻专家 更新时间:2023-11-01 08:17:03 25 4
gpt4 key购买 nike

我正在尝试将 android 1.6+ 应用程序反向移植到 android 1.5。

按照这里的建议:

...我做了以下事情:

  1. 修改AndroidManifest.xml,设置minSdkVersion为3
  2. 将我之前在 drawable-mdpi/中的所有文件移动到 drawable/
  3. 将 drawable-hdpi/重命名为 drawable-hdpi-v4/

在我看来,这应该确保 1.5 设备使用 drawable/中的文件,而 1.6 和更高版本的设备适本地使用 drawable/和 drawable-hdpi-v4/中的文件。 drawable/和 drawable-hdpi-v4/目录是我的 res 文件夹中仅有的可绘制目录。

但是,在 1.5 模拟器上编译、安装和运行生成的二进制文件后,出现以下错误:

E/AndroidRuntime( 1096): Caused by: java.lang.reflect.InvocationTargetException
E/AndroidRuntime( 1096): at android.widget.ImageView.<init>(ImageView.java:103)
E/AndroidRuntime( 1096): at java.lang.reflect.Constructor.constructNative(Native Method)
E/AndroidRuntime( 1096): at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
E/AndroidRuntime( 1096): at android.view.LayoutInflater.createView(LayoutInflater.java:499)
E/AndroidRuntime( 1096): ... 26 more
E/AndroidRuntime( 1096): Caused by: android.content.res.Resources$NotFoundException: File res/drawable/bg.png from drawable resource ID #0x7f02002e
E/AndroidRuntime( 1096): at android.content.res.Resources.loadDrawable(Resources.java:1641)
E/AndroidRuntime( 1096): at android.content.res.TypedArray.getDrawable(TypedArray.java:548)
E/AndroidRuntime( 1096): at android.widget.ImageView.<init>(ImageView.java:113)
E/AndroidRuntime( 1096): ... 30 more
E/AndroidRuntime( 1096): Caused by: java.io.FileNotFoundException: res/drawable/bg.png
E/AndroidRuntime( 1096): at android.content.res.AssetManager.openNonAssetNative(Native Method)
E/AndroidRuntime( 1096): at android.content.res.AssetManager.openNonAsset(AssetManager.java:392)
E/AndroidRuntime( 1096): at android.content.res.Resources.loadDrawable(Resources.java:1634)
E/AndroidRuntime( 1096): ... 32 more

由于我不明白的原因,1.5 设备无法看到 bg.png 图像文件,该文件的一个版本同时位于 drawable/和 drawable-hdpi-v4/目录中。

运行相同的二进制文件在 1.6 上运行良好。

为什么 1.5 设备无法使用此设置看到我的 res/drawable/bg.png 图像?

更新:如 Providing screen resource compatibility for Android 1.5 中所述,我正在使用 Android SDK r6 并将我的 mdpi 资源放在 drawable/目录中。此外,我已经确认问题并非孤立于 bg.png。如果我在我的 xml 中删除对损坏的可绘制对象的引用,应用程序将在 setContentView() 期间中断下一个和每个后续图形。

最佳答案

成功!!!

问题是我在 drawable-hdpi-v4/中有一个 foo.png 资源,但在 drawable/目录中不存在。当我从我的布局文件中引用 R.drawable.foo 时,1.5 模拟器因此无法为该 ID 找到合适的资源。很难追踪的原因是错误并没有在引用 foo.png 时立即发生,而是在引用的下一个资源 bg.png 上引发了错误。 Google 已确认这是一个错误。

将 mdpi 版本的 foo.png 添加到 drawable/目录解决了这个问题。

关于android - 在 Android 1.5 上运行应用程序时的 NotFoundException 和 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3357816/

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