【问题标题】:How to run an app from api14 emulator to api10 emulator如何从 api14 模拟器运行应用程序到 api10 模拟器
【发布时间】:2013-01-16 14:39:44
【问题描述】:

我在 api10 模拟器中运行应用程序时遇到问题。这个应用程序可以在api14模拟器中成功运行,但是当我在api10模拟器中运行它时,应用程序首先停止了。

这里附上了 logcat 信息。

【问题讨论】:

    标签: android android-layout android-emulator


    【解决方案1】:

    API 10 是不支持片段的姜饼,正如您在日志 cat 中看到的错误正在夸大类片段。

    您要么需要使用像ActionBarSherlock 这样的库,要么Android 支持库可能允许这样做,或者为姜饼版本提供替代布局。

    更新 如果您使用支持库,请确保使用getSupportFragmentManager 而不是getFragmentManager()

    也许这个链接也可以帮助http://mobile.tutsplus.com/tutorials/android/android-compatibility-working-with-fragments/

    【讨论】:

    • 但我使用了支持库 android-support-v4.jar。
    • @HeikiCyan - 确保在代码中导入支持片段
    • 我不确定支持库是否完全实现它,我在我的应用程序中尝试过,但无法在旧设备上运行
    【解决方案2】:

    确保您有来自支持者库的 Importet 片段:

    import android.support.v4.app.Fragment;
    

    如果您在 Manifest 中添加了 minSDK,则可以运行 Lint 以查看您是否使用了某些受支持版本中不可用的方法。 在清单中:

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

    【讨论】:

    • 您是否删除了 android.app.Fragment 的导入
    • 对不起,我是大一新生,但 Lint 是什么?以及如何做。
    • Lint 是一个代码分析工具。如果您在 Manifest 中设置 minSD-Version,它会检查您是否使用了与 minSDK-Version 不兼容的方法。您可以通过右键单击项目 - Android 工具 - 运行 Lint 来启动它
    • 是的,我已经移动了 andorid.app.Fragment。
    • 如果您仍在使用与旧版本不兼容的方法,Lint 会显示它。如果什么都没有,您的应用程序应该可以正常工作。除非你忘记了 Manifest 中的 minSDK。
    【解决方案3】:

    问题是您正在使用新的 API 调用。 API 仅通过support library 支持Fragments,但仅通过导入库不会自动发生更改。您必须确保使用库功能而不是较新的 API。例如,您需要更改导入以使用支持库。应该看起来像 --

    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    

    添加您需要的任何其他导入。另一个明显的区别,也可能是您问题的根源在于,为了托管 Fragment,您需要从 FragmentActivity 扩展您的活动,而不是 Activity

    有关支持 API 与常规 API 的更多详细信息,请参阅“Using the v4 Library APIs”。

    【讨论】:

    • 我按照你说的改了,但问题依旧存在。
    猜你喜欢
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    相关资源
    最近更新 更多