【问题标题】:Adding libs with resources via command line通过命令行添加带有资源的库
【发布时间】:2014-04-06 20:05:32
【问题描述】:

我正在尝试在不使用 eclipse 或 gradle 的情况下完成 http://developer.android.com/tools/support-library/setup.html#libs-with-res;但是,官方文档不支持这一点。在过去的几个小时里,我一直在谷歌上搜索我能想到的所有内容,但没有找到任何有用的信息。

具体来说,我正在尝试添加support.v7.appcompat 库。我可以将 jar 添加到我的项目中,但我找不到任何方法来添加相关资源。我不断收到java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.,即使我已将android:theme="@style/Theme.AppCompat" 添加到我的AndroidManifest.xml<manifest> 元素中,每个早期的、看似相关的搜索结果之一。我还添加了android.library.reference.1=<sdk>/extras/android/support/v7/appcompat 到我的local.properties,但无济于事。

有人可以指导我如何从命令行添加这个库吗?

【问题讨论】:

    标签: android command-line


    【解决方案1】:

    但是官方文档不支持

    general Android library project instructions 应该可以正常工作。

    我可以将 jar 添加到我的项目中

    这不是你应该做的。

    我还将 android.library.reference.1=/extras/android/support/v7/appcompat 添加到我的 local.properties,但无济于事。

    那是project.properties,而不是local.properties。出于某种疯狂的原因,它必须是相对路径,因此请确保以这种方式进行设置。

    就个人而言,我建议您为迁移到 Gradle 的时间做好预算。


    原来有两个层次的问题。除了正确设置命令行构建文件之外,主题的注册方式也不是很正确。

    如果您要在清单中直接引用Theme.AppCompat,则:

    • 应该在<application>元素上,或者
    • 应该在活动从AppCompatActivity继承的每个<activity>元素上

    或者,如果您要坚持使用继承自 Theme.AppCompat 的自己的 AppTheme,则需要确保调整所有相关的样式资源。例如,您可以根据常用代码调整res/values/styles.xml 中的AppBaseTheme 以从Theme.AppCompat 继承(然后让AppThemeAppBaseTheme 继承)。但是,其他目录(例如res/values-v11/styles.xml)中也可能存在AppBaseTheme的定义也需要调整。

    【讨论】:

    • 我已经尝试过project.propertieslocal.properties,两者的结果相同。我使用的是相对路径。
    • @weberc2:考虑到 Eclipse 使用project.properties,而且它可以工作,我很有信心project.properties 是正确的答案。此外,this sample project 在我使用 Ant 的开发机器上构建并运行良好。
    • 我切换回 project.properties 并从我的 libs/ 目录中删除了 .jar 文件。我注意按照您在帖子中链接的说明进行操作,但结果是一样的。我正在使用ant debug 构建并使用adb install -r ./bin/MyFirstApp-debug.apk 进行部署;是否有可能没有正确更新?
    • @weberc2: 你在<application> 级别有android:theme="@style/Theme.AppCompat" 吗?如果没有,您的ActionBarActivity 子类的all 是否都有它?另外,您是否调整了所有相关的样式资源以反映 Theme.AppCompat 的变化?
    • 不,我的android:theme 在清单级别,根据其他一些互联网资源。将其移至<application> 级别解决了该问题。谢谢你的帮助。如果您愿意更新您的答案,我会接受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多