我正在尝试使用TaskDescription最小化我的应用程序时设置ActionBar的颜色,如这篇文章的答案所建议的:Setting header color of app in overview (recent apps) screen
以下是相关代码:
...
import android.app.ActivityManager;
...
public class MainActivity extends SherlockFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
...
int c = Color.parseColor("#0A782F");
ActivityManager.TaskDescription td = new ActivityManager.TaskDescription(R.string.app_name, R.drawable.launcher, c);
((SherlockFragmentActivity) this).setTaskDescription(td);
}
...
}
尽管我尚未发布该项目的xml资源文件,但是您可以假定
R.string.app_name
和R.drawable.launcher
是在xml文件中定义的。这是问题所在:编译此代码时,出现以下错误:
error: cannot find symbol
...
symbol: class TaskDescription
location: class MainActivity
现在,据我了解,当您引用不存在的类或变量名称时,Java会引发
cannot find symbol
错误。对于类,通常是由于忘记导入所需的类而引起的。但是,在这种情况下,这不是原因,因为我已经在类文件的顶部清楚地导入了ActivityManager
。以下是一些其他示例,其中人们做了完全相同的事情,只是为了表明我已经完成了研究:http://www.programcreek.com/java-api-examples/index.php?class=android.app.ActivityManager&method=TaskDescription
最后,我认为问题可能在于您只能在Activity上下文中实例化
TaskDescription
类。但是,我使用的是SherlockFragmentActivity
而不是标准的AppCompatActivity
。不幸的是,我尝试更改此设置,但仍然遇到相同的错误。有任何想法吗?在此先感谢您的帮助!
最佳答案
找到了解决方案!我没有提到我使用gradle构建项目的问题。问题是我使用的是旧的Sdk版本(特别是我使用的是尚未定义TaskDescription类的android Sdk版本)。因此,要解决此问题,我要做的就是将以下行添加到我的build.gradle
文件中的相应位置:
compileSdkVersion 21
希望这可以帮助由于相同原因而感到迷路的其他人。