编译2.2时的资源问题1.5

时间:2010-09-06 22:09:21

标签: android

如果我使用Android 2.2 SDK目标编译我的应用程序,它将无法在Android 1.5上运行。如果我用2.1编译,它工作正常。问题似乎在于找到我的一些资源文件。这是堆栈转储:

09-06 11:22:15.387 W/ResourceType( 2702): Failure getting entry for 0x7f020004 (t=1 e=4) in package 0: 0xffffffb5
09-06 11:22:15.397 W/System.err( 2702): android.view.InflateException: Binary XML file line #22: Error inflating class java.lang.reflect.Constructor
09-06 11:22:15.442 W/System.err( 2702): at android.view.LayoutInflater.createView(LayoutInflater.java:512)
09-06 11:22:15.442 W/System.err( 2702): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
09-06 11:22:15.442 W/System.err( 2702): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:562)
09-06 11:22:15.442 W/System.err( 2702): at android.view.LayoutInflater.rInflate(LayoutInflater.java:617)
09-06 11:22:15.442 W/System.err( 2702): at android.view.LayoutInflater.parseInclude(LayoutInflater.java:701)
09-06 11:22:15.442 W/System.err( 2702): at android.view.LayoutInflater.rInflate(LayoutInflater.java:613)
09-06 11:22:15.442 W/System.err( 2702): at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
09-06 11:22:15.442 W/System.err( 2702): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
09-06 11:22:15.442 W/System.err( 2702): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
09-06 11:22:15.442 W/System.err( 2702): at com.drclabs.android.wootchecker.MainActivity.onCreate(MainActivity.java:203)
09-06 11:22:15.442 W/System.err( 2702): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
09-06 11:22:15.442 W/System.err( 2702): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231)
09-06 11:22:15.442 W/System.err( 2702): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284)
09-06 11:22:15.442 W/System.err( 2702): at android.app.ActivityThread.access$1800(ActivityThread.java:112)
09-06 11:22:15.442 W/System.err( 2702): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
09-06 11:22:15.442 W/System.err( 2702): at android.os.Handler.dispatchMessage(Handler.java:99)
09-06 11:22:15.442 W/System.err( 2702): at android.os.Looper.loop(Looper.java:123)
09-06 11:22:15.442 W/System.err( 2702): at android.app.ActivityThread.main(ActivityThread.java:3948)
09-06 11:22:15.442 W/System.err( 2702): at java.lang.reflect.Method.invokeNative(Native Method)
09-06 11:22:15.447 W/System.err( 2702): at java.lang.reflect.Method.invoke(Method.java:521)
09-06 11:22:15.447 W/System.err( 2702): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
09-06 11:22:15.447 W/System.err( 2702): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
09-06 11:22:15.447 W/System.err( 2702): at dalvik.system.NativeStart.main(Native Method)
09-06 11:22:15.447 W/System.err( 2702): Caused by: java.lang.reflect.InvocationTargetException
09-06 11:22:15.447 W/System.err( 2702): at android.widget.ImageView.<init>(ImageView.java:103)
09-06 11:22:15.447 W/System.err( 2702): at java.lang.reflect.Constructor.constructNative(Native Method)
09-06 11:22:15.447 W/System.err( 2702): at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
09-06 11:22:15.452 W/System.err( 2702): at android.view.LayoutInflater.createView(LayoutInflater.java:499)
09-06 11:22:15.452 W/System.err( 2702): ... 22 more
09-06 11:22:15.452 W/System.err( 2702): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f020004 a=-1 r=0x7f020004}
09-06 11:22:15.457 W/System.err( 2702): at android.content.res.Resources.loadDrawable(Resources.java:1609)
09-06 11:22:15.457 W/System.err( 2702): at android.content.res.TypedArray.getDrawable(TypedArray.java:548)
09-06 11:22:15.457 W/System.err( 2702): at android.widget.ImageView.<init>(ImageView.java:113)
09-06 11:22:15.457 W/System.err( 2702): ... 26 more

我的清单中的相关行:

<uses-sdk android:targetSdkVersion="8" android:minSdkVersion="3"/>

有问题的资源是位于res / drawable-hdpi / red_heart.png的小型PNG图像。 如果用户的设备支持它,我想添加对2.2中某些新功能的支持,但如果我不能在不破坏我的1.5用户的应用程序的情况下编译2.2 SDK,我就不能这样做。

有没有人知道如何解决这个问题?我是否需要对我在布局文件中存储或引用图像资源的方式做些不同的事情?

1 个答案:

答案 0 :(得分:2)

我想我在一些关于drawables的讨论中读到了你必须在res / drawables目录中包含drawables才能让它们在较低的sdk版本中工作。如果我再找到它,我会用链接更新。