首页 \ 问答 \ LibGDX无法在Android API 21上运行?(LibGDX not work on Android API 21?)

LibGDX无法在Android API 21上运行?(LibGDX not work on Android API 21?)

我有Android API 21和20.但是libgdx在21中不起作用! 最新版本libgdx与API 20一起使用。但是当我用API 20构建项目时,Eclipse返回错误:

"appcompat_v7/res/values-v21/themes_base.xml:191: error: Error: No resource found that matches the given name: attr 'android:colorPrimaryDark'."

我找到了更多关于此的答案,但每个人都告诉你需要使用API​​ 21。

Appcompat v7和ActionBarActivity

我做什么?

PS抱歉我的英文!


I have Android API 21 and 20. But libgdx not work in 21! Last version libgdx work with API 20. But when I build project with API 20, Eclipse return error:

"appcompat_v7/res/values-v21/themes_base.xml:191: error: Error: No resource found that matches the given name: attr 'android:colorPrimaryDark'."

I finded more answers about this, but everybody tell what you need use API 21.

Appcompat v7 and ActionBarActivity

What me do?

P.S. Sorry for my English!


原文:https://stackoverflow.com/questions/28267316
更新时间:2023-09-17 13:09

最满意答案

您可以为每个核心启动一个任务,因为任务完成后会启动新任务。您可以根据ProcessorCount或特定数量使用numOfThreads

int numOfThreads = System.Environment.ProcessorCount;
// int numOfThreads = X;
for(int i =0; i< numOfThreads; i++)
task.Add(Task.Factory.StartNew(()=> {});
while(task.count>0) //wait for task to finish
{
      int index = Task.WaitAny(tasks.ToArray());
      tasks.RemoveAt(index);
      if(incomplete work)
      task.Add(Task.Factory.StartNew()=> {....});
}

要么

var options = new ParallelOptions();
options.MaxDegreeOfParllelism = System.Environment.ProcessorCount;
Parallel.For(0,N,options, (i) => {/*long running computattion*/};

要么

您可以使用BlockingCollection实现Producer-Coustomer模式

这个主题由Dr.Joe Hummel在他的Pluralsight课程“异步和并行编程:应用程序设计”中精心教授


You can start one task per core,As tasks finish start new ones.You can use numOfThreads depending on ProcessorCount or specific number

int numOfThreads = System.Environment.ProcessorCount;
// int numOfThreads = X;
for(int i =0; i< numOfThreads; i++)
task.Add(Task.Factory.StartNew(()=> {});
while(task.count>0) //wait for task to finish
{
      int index = Task.WaitAny(tasks.ToArray());
      tasks.RemoveAt(index);
      if(incomplete work)
      task.Add(Task.Factory.StartNew()=> {....});
}

or

var options = new ParallelOptions();
options.MaxDegreeOfParllelism = System.Environment.ProcessorCount;
Parallel.For(0,N,options, (i) => {/*long running computattion*/};

or

You can Implement Producer-Coustomer pattern with BlockingCollection

This topic is excellently taught by Dr.Joe Hummel on his Pluralsight course "Async and parallel programming: Application design "

相关问答

更多
  • 当我遇到类似这样的情况时,我通常会构建一个服务来异步处理请求,并返回一个句柄,我可以用来检查它在数据库中的状态。 恕我直言,把它作为网络应用程序中的一个线程拆分似乎你试图将一个方形钉插入一个圆孔。 When I've had cases like those, I usually would build a service to asynchronously process requests, and return a handle that I could use to check on its stat ...
  • 这是一个很好的问题,需要时间作为Android程序员才能充分理解这个问题。 事实上AsyncTask有两个相关的主要问题: 他们与活动生命周期的关系很差 它们非常容易地创建内存泄漏。 在RoboSpice Motivations应用程式( Google Play提供 )中,我们会详细回答这个问题。 它将深入了解AsyncTasks,Loader,它们的特性和缺点,并向您介绍网络请求的替代解决方案:RoboSpice。 网络请求是Android中的常见要求,本质上是长时间运行的操作。 这是摘自应用程式的摘录: ...
  • 这种无所谓。 问题不在于时间问题,而在于你的代码在做什么。 如果您正在执行异步I / O,那么您仅在单个请求之间的短时间内使用该线程。 如果你在做CPU工作......那么你正在使用CPU。 没有“线程池饥饿”,因为CPU被充分利用。 真正的问题是当你阻止不使用CPU的工作时。 在这种情况下,线程池饥饿会导致CPU利用率不足 - 你说“我需要CPU来完成我的工作”,然后你实际上并没有使用它。 如果你没有使用阻塞API,那么在Task.Run中使用Task.Run没有意义。 如果你不得不异步运行一些遗留的阻塞 ...
  • 您可以为每个核心启动一个任务,因为任务完成后会启动新任务。您可以根据ProcessorCount或特定数量使用numOfThreads int numOfThreads = System.Environment.ProcessorCount; // int numOfThreads = X; for(int i =0; i< numOfThreads; i++) task.Add(Task.Factory.StartNew(()=> {}); while(task.count>0) //wait for t ...
  • 首先,如果你记住你提到的所有要点,你肯定是在“正确的方向”。 您描述的问题非常常见,并且是大多数应用程序所关注的问题 你的一些假设存在问题: Activity + AsyncTask。 完全不起作用,因为AsyncTask绑定到特定的Activity实例,并且一旦重新创建了Activity(设备方向更改就是一个示例),AsyncTask被绑定到“错误”的上下文。 没有人说AsyncTask必须从Activity执行!! 它也是一个很好的做法,使用Android Service派生类的AsyncTask (不 ...
  • 您可以使用一对AutoResetEvents ,每个线程一个。 在线程执行结束时,您调用AutoResetEvents.Set()来触发事件。 产生线程后,使用WaitAll()和两个AutoResetEvents。 这将导致线程阻塞,直到设置了两个事件。 这种方法的警告是你必须确保调用Set(),否则你将永远阻止。 另外,请确保使用线程执行正确的异常处理,否则当无法处理的异常导致Web应用程序重新启动时,您将无意中导致更多性能问题。 MSDN有关于AutoResetEvent用法的示例代码。 You ca ...
  • 您很可能在使用ASP.NET应用程序中的线程时出错。 你正在使用异步页面,还是使用新的Thread()? 后者是一个错误,当请求完成时,可以让你进入一些HttpContext的问题,但线程仍在运行。 请编辑您的问题,以更详细地介绍您使用线程处理的内容。 You are quite possibly making a mistake in your use of threads in an ASP.NET application. Are you using asynchronous pages, or ar ...
  • 不,它不会阻塞任何其他线程,除非该方法获取一个公共锁(例如由于Synchronized属性)或者调用一个同步方法本身。 正如达林所说,你可能会耗尽线程池,但我不认为这就是你的问题所担心的。 要明确,如果没有涉及任何同步,你肯定可以有两个线程同时执行相同的静态方法。 No, it's not going to block any other threads unless the method either acquires a common lock (e.g. due to the Synchronized ...
  • 您应该立即返回状态为202 Accepted 。 除此之外,HTTP规范同意Jonathan的回答 : 使用此响应返回的实体应该包括请求的当前状态的指示,以及指向状态监视器的指针或用户可以期望满足请求的某些估计。 您可以使用以下命令设置状态(例如,在servlet中): response.setStatus(HttpServletResponse.SC_ACCEPTED); 其中response是为请求提供的HttpServletResponse 。 编辑 (重新:评论): 好的浏览器会将任何2XX状态视 ...
  • AsyncTask公开的接口定义了一个设置,一个后台操作,以及一个可以更新UI的“on done”回调。 这意味着它的预期用途是用于具有明确定义的结束的操作,从而产生对用户的反馈。 如果您需要正在进行的后台线程,请使用Executor执行承载正在进行的操作的Runnable实例。 但请谨慎使用,因为当您的应用程序离开前台时,该线程将继续运行。 仔细制作你的Runnable ,使其可以中止(可以使run()方法干净地返回)。 值得注意的是, AsyncTask只会强制您进入一个定义良好的模式,以执行异步操作, ...

相关文章

更多

最新问答

更多
  • python的访问器方法有哪些
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。
  • 响应navi重叠h1和nav上的h1链接不起作用(Responsive navi overlaps h1 and navi links on h1 isn't working)
  • 在C中读取文件:“r”和“a +”标志的不同行为(Reading a File in C: different behavior for “r” and “a+” flags)
  • NFC提供什么样的带宽?(What Kind of Bandwidth does NFC Provide?)
  • 元素上的盒子阴影行为(box-shadow behaviour on elements)
  • Laravel检查是否存在记录(Laravel Checking If a Record Exists)
  • 设置base64图像的大小javascript - angularjs(set size of a base64 image javascript - angularjs)
  • 想学Linux 运维 深圳有哪个培训机构好一点
  • 为什么有时不需要在lambda中捕获一个常量变量?(Why is a const variable sometimes not required to be captured in a lambda?)
  • 在Framework 3.5中使用服务器标签<%=%>设置Visible属性(Set Visible property with server tag <%= %> in Framework 3.5)
  • AdoNetAppender中的log4net连接类型无效(log4net connection type invalid in AdoNetAppender)
  • 错误:发送后无法设置标题。(Error: Can't set headers after they are sent. authentication system)
  • 等待EC2实例重启(Wait for an EC2 instance to reboot)
  • 如何在红宝石中使用正则表达式?(How to do this in regex in ruby?)
  • 使用鼠标在OpenGL GLUT中绘制多边形(Draw a polygon in OpenGL GLUT with mouse)
  • 江民杀毒软件的KSysnon.sys模块是什么东西?
  • 处理器在传递到add_xpath()或add_value()时调用了什么顺序?(What order are processors called when passed into add_xpath() or add_value()?)
  • sp_updatestats是否导致SQL Server 2005中无法访问表?(Does sp_updatestats cause tables to be inaccessible in SQL Server 2005?)
  • 如何创建一个可以与持续运行的服务交互的CLI,类似于MySQL的shell?(How to create a CLI that can interact with a continuously running service, similar to MySQL's shell?)
  • AESGCM解密失败的MAC(AESGCM decryption failing with MAC)
  • SQL查询,其中字段不包含$ x(SQL Query Where Field DOES NOT Contain $x)
  • PerSession与PerCall(PerSession vs. PerCall)
  • C#:有两个构造函数的对象:如何限制哪些属性设置在一起?(C#: Object having two constructors: how to limit which properties are set together?)
  • 平衡一个精灵(Balancing a sprite)
  • n2cms Asp.net在“文件”菜单上给出错误(文件管理器)(n2cms Asp.net give error on Files menu (File Manager))
  • Zurb Foundation 4 - 嵌套网格对齐问题(Zurb Foundation 4 - Nested grid alignment issues)
  • 湖北京山哪里有修平板计算机的