我有一个奇怪的问题。我的 Android 应用程序适用于我的手机(Android 版本 2.3.5,API 9),我的一些模拟器(Android 版本 >= 2.2,API >= 8,在 API 8、13、15 上测试)而不是我的其他模拟器(Android 版本 < 2.2,API < 8,在 API 4、7 上测试)。该应用程序不会在 API < 8 的模拟器上崩溃,但我的一些自定义 ImageViews 在屏幕上消失了。否则一切正常。
我已经使用最新版本的工具lint来确定我是否使用了 API < 8 不支持的任何方法,但我唯一确定的是我使用了一种需要 API 4 的方法,在设置 android 时没有关于 API 的错误消息:minSdkVersion=4, android:targetSdkVersion=4 并将目标构建为 4。
我也看过这里,因为错误似乎发生在 API 7 和 8 之间的某个地方,但找不到任何东西。我还对照开发人员文档检查了自定义 ImageView 中的所有方法,以查看是否有任何方法需要 API > 7。
有没有人对问题可能有任何其他建议?
编辑:
这是我的主要 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/gameLayoutID"
>
<fragment
android:id="@+id/groundMenuID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
class="com.foo.bar.someClass"/>
<fragment
android:id="@+id/topLeftMenuID"
android:layout_width="@dimen/TopLeftRightMenu_width"
android:layout_height="@dimen/TopMenu_height"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
class="com.foo.bar.someClass"/>
<fragment
android:id="@+id/topRightMenuID"
android:layout_width="@dimen/TopLeftRightMenu_width"
android:layout_height="@dimen/TopMenu_height"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
class="com.foo.bar.someClass"/>
<fragment
android:id="@+id/leftMenuID"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_above="@id/groundMenuID"
android:layout_below="@id/topLeftMenuID"
class="com.foo.bar.someClass"/>
<fragment
android:id="@+id/rightMenuID"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_above="@id/groundMenuID"
android:layout_below="@id/topRightMenuID"
class="com.foo.bar.someClass"/>
<fragment
android:id="@+id/topMenuID"
android:layout_width="fill_parent"
android:layout_height="@dimen/TopMenu_height"
android:layout_alignParentTop="true"
android:layout_toRightOf="@id/topLeftMenuID"
android:layout_toLeftOf="@id/topRightMenuID"
class="com.foo.bar.someClass"/>
<com.foo.bar.CustomImageViewLayout
android:id="@+id/wheelMenuID"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_toRightOf="@id/leftMenuID"
android:layout_toLeftOf="@id/rightMenuID"
android:layout_below="@id/topMenuID"
android:layout_above="@id/groundMenuID"/>
<fragment
android:id="@+id/figurePassageID"
android:layout_width="fill_parent"
android:layout_height="@dimen/figurePassage_height"
android:layout_above="@id/groundMenuID"
class="com.foo.bar.someClass"/>
</RelativeLayout>
Fragment 通过标准 Fragment 类的 onCreateView 方法进行膨胀,无论使用何种 API,它们都可以正常工作。至于自定义的 ImageView 类......它有很多代码,我不确定我是否想将它粘贴到开放中(这有点像我的主要知识产权)。我很确定错误不存在,但我会再次验证它。如果没有,我会尝试粘贴一些代码。