如何在Eclipse中运行Android Support4Demo

3
我正在努力在Eclipse中设置和运行级别4支持库的演示。提前道歉,我想完整地描述我所做的事情。真的很希望这里的专家能够提供帮助。
以下是我所做的事情:
1-创建新项目: 与其尝试让Eclipse“从现有源代码创建项目”或“从现有示例创建项目”以及这些项目设置方法似乎会导致的所有问题,我创建了一个新项目。
2-'src','res'子目录: 删除了自动创建的这些目录中的所有文件,然后将文件夹结构和所有文件从Support4Demo的sdk版本复制到项目中。
3-添加支持jar 创建了一个名为'lib'的子目录,并添加了android-support-v4.jar的副本。然后将其添加到Build Path中(这导致了一个名为“Reference Libraries”的新文件夹,其中包含android-support-v4.jar文件)。
4-AndroidManifest.xml: 用演示项目目录中的文件替换了自动生成的清单。
问题/疑问: 我收到来自Eclipse的有关目标API级别的警告。
Attribute minSdkVersion (4) is lower than the project target API level (13)

好的,我明白这个问题。(我希望能够在8级(或更低)虚拟设备上运行此应用程序。这就是支持库的作用。)

但是我在清单文件中也遇到了一个无法理解的错误-

error: No resource identifier found for attribute 'stopWithTask'
in package 'android' AndroidManifest.xml /Supportv4Demo line 226
Android AAPT Problem

这里所提到的清单中的行是一个服务引用 -
<service android:name=".content.LocalServiceBroadcaster$LocalService"
                     android:stopWithTask="true" />

我对Eclipse并不是很熟悉(这肯定是我的问题之一),但我怀疑Eclipse已经对包含文件进行了修改,而我在某个地方没有得到正确的包引用。我检查了类LocalServiceBroadcaster,它的“包含”看起来像这样 -

package com.example.android.supportv4.content;

import com.example.android.supportv4.R;
import android.R.attr;
import android.app.Activity;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
... more includes
import android.support.v4.app.ServiceCompat;
import android.support.v4.content.LocalBroadcastManager;
... more includes

我该如何设置和运行这个支持库的演示?
提前感谢您提供的任何帮助!


好的,我认为这里不需要'import android.R.attr;'。此外,当我复制代码文件时,我忽略了将新的src目录放入构建路径中。通过从清单中删除服务引用,我可以让项目在lvl 8和lvl 10上编译和运行。仍然不清楚为什么stopWithTask引用会失败。 - PaulP
1个回答

5

正如您在文档看到的那样,stopWithTask仅适用于API级别14及以上。要么将目标SDK级别更改为14,要么删除该属性。(与包含无关)。


非常感谢你,kabuko。不确定作者为什么在清单中包含了这个,如果他们打算展示向后兼容性!我将来会更加注意。 - PaulP
没问题。一些 Android 示例项目似乎有一些混乱的清单文件,这很容易发生,因为它们可能有很多版本。当你遇到这样的情况时,要做的就是始终查看文档。我不知道 stopWithTask 是 API 级别 14,我只是看到它在你的错误中,所以我专门查找了那个,因为我怀疑那个是原因。 - kabuko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接