我正在尝试将项目迁移到Android Studio/Gradle,但我遇到了一个使用Ant工作得很好的 jar的奇怪问题.似乎R和BuildConfig包含在jar中,并且它们的包名称被声明为大写,其中实际上包结构将其定义为小写.(我已经更改了包名称以保护开发人员的匿名性,希望没问题)
意外的顶级异常:
com.android.dx.cf.iface.ParseException:类名(com/companyname/UI/BuildConfig)与 com.android.dx 中的路径(com/companyname/ui/BuildConfig.class)不匹配 .cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)位于com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)的com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary (DirectClassFile.java:388)位于com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)的com.android.dx.command.dexer.Main.processClass(Main.java:665)at at com.android.dx.com上的com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)com.android.dx.command.dexer.Main.access $ 600(Main.java:78) .dexer.Main $ 1.processFileBytes(Main.java:572)com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)at com.android.dx.cf.direct.ClassPathOpener.processOne( ClassPathOpener.java:166)com.android.dx.cf.direct.ClassPathOpener.process(ClassPath Opener.java:144)com.android.dx.command.dexer.Main.processOne(Main.java:596)at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)at com com.android.dx.command.dexer上com.android.dx.command.dexer.Main.run(Main.java:230)的.android.dx.command.dexer.Main.runMonoDex(Main.java:264) .Main.main(Main.java:199)在com.android.dx.command.Main.main(Main.java:103)...解析com/companyname/ui/BuildConfig.class
这是我的问题:
我正在开发一个带有前台服务的应用程序,该服务可以播放音频很长一段时间.
我不希望Android操作系统在后台运行时终止我的服务,但是如果从任务管理器手动关闭应用程序,我想停止服务.
我的应用程序的当前行为是在任务管理器中关闭应用程序时服务继续运行.
我注意到Spotify实现了预期的效果,它是如何实现的?
在我的Galaxy Nexus上,我可以在系统偏好设置中点按此按钮以启动我当前选择的白日梦.

有没有办法通过Intent在应用程序中重现此功能?我没有白日梦服务,但我想让用户开始他们喜欢的白日梦.
我有一个自定义视图组(包含加载毕加索的图像),可以在两个地方重用:
我绘制到画布的代码如下所示:
int measureSpec = View.MeasureSpec.makeMeasureSpec(width, View.MeasureSpec.EXACTLY);
view.measure(measureSpec, measureSpec);
Bitmap bitmap =
Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
view.draw(canvas);
Run Code Online (Sandbox Code Playgroud)
问题是在我将视图绘制到画布之前没有时间加载图像.我试图尽量避免在这里进行耦合,所以我不想添加Picasso回调,因为正在进行绘制的类对它正在绘制的视图一无所知.
我目前正在通过将图像加载代码更改为.get()而不是.load()然后使用来解决此问题imageView.setImageBitmap().不幸的是,这给视图增加了很多复杂性,我真的不喜欢它.
我想做的是向Picasso的RequestCreator传递一个选项,即请求应该在当前线程上同步执行(如果它是主线程则抛出异常).我想知道这对于直接建立毕加索的支持来说是不是太过分了?或者它已经在API中了,我对此无动于衷?