【问题标题】:ActionBar in Android Maven Project using Android Support Library v7使用 Android 支持库 v7 的 Android Maven 项目中的 ActionBar
【发布时间】:2014-04-29 16:21:12
【问题描述】:

我有一个 Android Maven 项目,但在使用 ActionBar 保持兼容性时遇到了困难。

在我使用 ActionBarSherlock 之前,但我看到 Google 发布的 v7 支持库 将具有相同的目标。我决定去掉ActionBarSherlock的依赖,使用v7。我尝试了几种方法:

  • 1 - 在 Eclipse IDE 上将文件夹“android-sdk\extras\android\support\v7\appcompat”作为“Existing Android Code into Workspace”导入并将其注册为库。但是该项目停止识别由框架 AndroidAnnotations 生成的类。例如登录活动_
  • 2 - 使用显示此 question 的存储库添加 maven appcompat-v7 依赖项。但我无法使项目编译,即使尝试不同的依赖配置。

有没有人使用 Maven 建立了一个带有库支持 v7 的 android 项目?你能帮帮我吗?

【问题讨论】:

    标签: java android maven android-support-library android-annotations


    【解决方案1】:

    在2.2设备中实现ActionBar和2.2中的ViewPager,Framgmet Tag等其他功能,那么使用sherlockActionbar和AppCompat有两种方式

    Sherlock 是第三方库,而 AppCompat 是 Android 库。
    在项目中使用 AppCompact 的步骤

    只需更新 android skd-> extra-> Android 支持库然后转到系统中的 sdk-> Androidsdk\extras\android\support\v7 找到 appcompat 源代码。在你的eclipse中导入这个appcompact。
    创建您的项目并从 property->android-> Library 中选择 appcompact 库。
    打开您的清单文件并更改主题**android:theme="@style/Theme.AppCompat.Light**" 然后使用ActionBarActivity 扩展您的活动,如果找不到,请手动导入`

     import android.support.v7.app.ActionBar;
     import android.support.v7.app.ActionBar.Tab;
     import android.support.v7.app.ActionBarActivity;`
    

    然后将以下代码添加到活动中

    final ActionBar actionBar = getSupportActionBar();
    actionBar.setHomeButtonEnabled(false);
    

    【讨论】:

    • 感谢您的回答!我按照您的指示进行操作,也参考了Android 文档,现在我遇到了以下问题:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.msplearning.android.app/com.msplearning.android.app.LoginActivity_}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
    • 很容易看出问题与应用的主题有关。但我相信我这样做是正确的,请参阅我的 style.xml 内容:<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"></style><style name="AppTheme" parent="AppBaseTheme"></style>。在文件 AndroidManifest.xml 中,我将主题与我的应用程序相关联:android:theme="@style/AppTheme"
    • 你好@PankajAndroid!我解决了上述cmets中提到的问题。文件夹values-v11values-v14的样式被覆盖values文件夹的style.xml。为了解决这个问题,我必须在 3 个文件 style.xml 中将父属性指定为 @style/Theme.Base.AppCompat.Light。这个问题已经解决了,但现在我只能通过 Maven 来构建......
    猜你喜欢
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    相关资源
    最近更新 更多