我在使用昨天发布的ActionBarCompat支持库时遇到了问题。我已经更新了支持存储库,并在build.gradle中包含了appcompat-v7存储库的路径,正如Chris Banes在DevBytes中指出的那样 - https://www.youtube.com/watch?v=6TGgYqfJnyc。
dependencies {
compile ('com.android.support:support-v4:18.0.+')
compile ('com.android.support:appcompat-v7:18.0.+')}
构建顺利,我可以使用来自这个库的ActionBarActivity等类,但我不能使用样式和任何资源,所以我不能使用以下主题 - @ style / Theme.AppCompat等我觉得我会找到源文件在... / sdk / extras / android /.../“supportrepo”所以我会像gradle一样引用ActionBarSherlock,但这似乎不是正确答案。
我做错了什么?谢谢。
答案 0 :(得分:9)
我正在使用Android Studio,我在values/styles.xml
中遇到了同样的解决问题。
它说它无法解析@style/Theme.AppCompat.Light
,但在编译时(gradle)和运行时一切正常(Android 2.3.3& 4.3)
我想摆脱无法解决资源的警告。
如何告诉Android Studio可以在appcompat-v7 repo中找到此res?
(此问题与Android Studio中已修复的错误有关。)
下面你看看我做了什么。我希望这将有所帮助。建议表示赞赏 appcompat库的源代码可以在github上找到。
dependencies {
...
compile group:'com.android.support', name:'appcompat-v7', version:'18.0.+'
...
}
值/ styles.xml:
<resources>
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
<item name="actionBarStyle">@style/ActionBar.Solid.Custom</item>
</style>
<style name="ActionBar.Solid.Custom" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
<item name="background">@drawable/ab_solid_custom</item>
<item name="displayOptions">homeAsUp|showHome|showCustom</item>
</style>
</resources>
值-V14 / styles.xml:
<resources>
<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 14 theme customizations can go here. -->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/ActionBar.Solid.Custom</item>
</style>
<style name="ActionBar.Solid.Custom" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
<item name="android:background">@drawable/ab_solid_custom</item>
<item name="android:displayOptions">homeAsUp|showHome|showCustom</item>
</style>
</resources>
MainActivity (只有扩展是强制性的):
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Views.inject(this);
setupNavigationDrawer();
}
}
AndroidManifest.xml (设置android:theme是必需的):
<activity
android:name="com.example.app.MainActivity"
android:theme="@style/AppTheme"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 1 :(得分:7)
有一个已知错误(http://code.google.com/p/android/issues/detail?id=56312),其中Android Studio IDE会将样式标记为红色(该错误适用于ActionBarSherlock,但问题在于包含样式的aar和aar的源代码Android Studio无法看到。)
具体来说,注释#8(http://code.google.com/p/android/issues/detail?id=56312#c4)显示观察到的行为,注释#10(http://code.google.com/p/android/issues/detail?id=56312#c10)注意到布局编辑器已修复,但代码编辑器不是。
因此,该计划应该建立&amp;运行正常,只需在XML样式编辑器中查看时显示红色样式。
答案 2 :(得分:2)
我还没有尝试过Gradle,所以我不确定,但似乎你还需要将资源复制到你的项目中。它包含Theme.AppCompat。
我通过以下步骤在Eclipse中取得了成功。
从下面的路径导入android-support-v7-appcompat
作为一个libray项目。(您可能已将sdk保存在不同的路径上)
d:\ ADT-束窗口86 \ ADT-束窗口86 \ SDK \额外\机器人\支持\ V7
我刚将这个库添加到我的项目中,并且开箱即用。
答案 3 :(得分:2)
我还在build.gradle文件中的依赖项部分添加了相同的2行。编译开始工作但我遇到了运行时错误。然后我发现了选项工具&gt; Android&gt;使用Gradle文件同步项目。这似乎可以解决问题。 (我在Android Studio 0.2.9上)
答案 4 :(得分:2)
就我而言,Lastest Studio 0.8.1
创建新项目并将Style设置为AppTheme。然后崩溃。
我的解决方案:
档案 - &gt;项目结构 - &gt;依赖 - &gt; +(加) - &gt;选择appcompact,support,....
错误已修复。
感谢。
答案 5 :(得分:0)
Cf https://plus.google.com/113735310430199015092/posts/ef5LyGyMddy
David Van de Ven
除非有人忘记更新支持存储库,否则任何人 使用android studio会在尝试时让他们的gradle构建中断 使用新的支持库。
Roman Nurik
+ David Van de Ven我们正在努力。