来自Android Studio中appcompat-v7:22.2.0的资源问题

时间:2015-06-04 21:39:03

标签: android android-studio gradle android-appcompat

我们已经从大学获得了一个基础项目。所以我安装了--- foo: alice: female # verified bob: male bar: - node: 42 name: none - node: 43 name: none ,安装并更新了Android SDK(API 22)和所有附加内容,并打开了项目,其中包含了外部库下的yaml库。
当我尝试构建应用程序时,我收到以下错误消息:

std::queue<Car*> carQueue; // creates the queue.

// insertion loop.
for (int i = 0; i < 3; ++i)
{
    Car *car = new Car();
    carQueue.push(car); // inserts the car into the end of the queue.
}

size_type queueInitialSize = carQueue.size();
// popping loop.
for (int = 0; i < queueInitialSize; ++i)
{
    Car *car = carQueue.front(); // gets the car in the front of the queue.
    std::cout << car->getName() << std::endl;
    carQueue.pop(); // removes the car from the front of the queue.
    delete car; // don't forget to release the allocated memory.
}

......等等。我得到了很多这些。我不明白为什么。一切似乎都是正确的。

任何人都可以基于此帮助。

4 个答案:

答案 0 :(得分:9)

正如您在此处所见:https://developer.android.com/sdk/support_api_diff/23.2.0/changes/android.support.v7.appcompat.R.drawable.html

可绘制引用已更新,因此您需要更新变量名称:

abc_ic_clear_mtrl_alpha      -> abc_ic_clear_material
abc_btn_check_to_on_mtrl_015 -> abc_btn_checkbox_checked_mtrl
abc_btn_check_to_on_mtrl_000 -> abc_btn_checkbox_unchecked_mtrl
abc_ic_ab_back_mtrl_am_alpha -> abc_ic_ab_back_material

但是,您应该注意,如果您在API级别&lt; = 19的设备上使用这些资源。这将触发异常Resource Not Found

答案 1 :(得分:0)

我遇到了类似的问题,我更新了使用最新的插件名称并提升了我的编译sdk版本(可能没有关联)。

旧插件名称:

apply plugin: 'android'
apply plugin: 'android-library'

使用新的插件名称:

apply plugin: 'com.android.application'
apply plugin: 'com.android.library'

答案 2 :(得分:0)

我有类似的问题。就我而言,项目路径太长了。我移动了项目文件夹,使路径更短,一切正常。您的路径在错误中看起来很长。

答案 3 :(得分:-2)

由于您使用的是API 22,因此不需要AppCompat并可以将其删除。我找到了一篇博文,解释了这里的详细信息,它对我有用:https://mobiarch.wordpress.com/2015/04/17/removing-support-library-in-android-studio

以下是它的说法(我添加了一些额外的帮助):

从项目中打开build.gradle。找到依赖项部分。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
}

删除兼容性库的行。之后,该部分应如下所示。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

保存并关闭。

默认情况下,应用程序使用支持库中提供的主题。核心API无法使用此功能。所以我们需要解决这个问题。打开res/values/styles.xml。样式标签看起来像这样:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>

将父级更改为可从核心SDK获得的主题。例如:

<style name="AppTheme" parent="android:style/Theme.Holo.Light">
    <!-- Customize your theme here. -->
</style>

将活动xml文件中的属性重命名为app:showAsActionandroid:showAsAction

Activity而不是ActionBarActivityAppCompatActivity扩展您的活动类。完成更改后,您必须在Activity上按Alt + Enter以在文件顶部添加import android.app.Activity。请参阅以下示例:

变化:

import android.support.v7.app.ActionBarActivity;

public class DisplayMessageActivity extends ActionBarActivity {
    .
    .
    .
}

为:

import android.app.Activity;

public class DisplayMessageActivity extends Activity {
    .
    .
    .
}

对于扩展ActionBarActivityAppCompatActivity

的任何其他活动也是如此

最后,执行Build | Clean ProjectBuild | Rebuild Project来排序当前的构建错误。