我非常无辜地转而使用不同的应用程序图标来表示每种产品的味道:
sourceSets.production {
res.srcDirs = ['res', 'res-production']
}
sourceSets.beta {
res.srcDirs = ['res', 'res-beta']
}
sourceSets.internal {
res.srcDirs = ['res', 'res-internal']
}
Run Code Online (Sandbox Code Playgroud)
事情是,在这之后,摇篮停止注意到任何布局文件的变化,比如res/layout/activity_faq.xml,和需要一个干净的构建每次,如果我想包括在APK我的XML的变化.
我首先想到这是一个Android Studio问题,但实际上我可以在命令行上使用纯Gradle重现它,只需查看下面显示的文件build/res/all/internal/debug/layout.
当我跑./gradlew assembleInternalDebug,它输出:
:compileInternalDebugNdk UP-TO-DATE
:preBuild UP-TO-DATE
:preInternalDebugBuild UP-TO-DATE
:prepareInternalDebugDependencies
:compileInternalDebugAidl UP-TO-DATE
:compileInternalDebugRenderscript UP-TO-DATE
:generateInternalDebugBuildConfig UP-TO-DATE
:mergeInternalDebugAssets UP-TO-DATE
:mergeInternalDebugResources
:processInternalDebugManifest UP-TO-DATE
:processInternalDebugResources UP-TO-DATE
:generateInternalDebugSources UP-TO-DATE
:compileInternalDebugJava UP-TO-DATE
:preDexInternalDebug UP-TO-DATE
:dexInternalDebug UP-TO-DATE
:processInternalDebugJavaRes UP-TO-DATE
:validateDebugSigning
:packageInternalDebug UP-TO-DATE
:assembleInternalDebug UP-TO-DATE
BUILD SUCCESSFUL
Run Code Online (Sandbox Code Playgroud)
在这里,processInternalDebugResources被证明是UP-TO-DATE …
我有一个文件Amazon S3桶ABCD.我有3个对象("folderA/folderB/folderC/abcd.csv")是文件夹,在最后的文件夹中我有一个.csv文件(abcd.csv).我已经使用逻辑将其转换为并将其JSON加载回另一个文件,该.txt文件是同一文件夹中的文件("folderA/folderB/folderC/abcd.txt").我必须在本地下载文件才能做到这一点.我如何直接读取文件并将其写回文本文件.我用来写入S3中的文件的代码如下,我需要从S3读取文件.
InputStream inputStream = new ByteArrayInputStream(json.getBytes(StandardCharsets.UTF_16));
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(json.length());
PutObjectRequest request = new PutObjectRequest(bucketPut, filePut, inputStream, metadata);
s3.putObject(request);
Run Code Online (Sandbox Code Playgroud) 我试图GsonFactory在我的应用程序中使用该类:
StudentApi.Builder builder = new StudentApi.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), null);
Run Code Online (Sandbox Code Playgroud)
但它说 cannot resolve symbol 'GsonFactory'
我在课堂上有导入
import com.google.api.client.json.gson.GsonFactory;
Run Code Online (Sandbox Code Playgroud)
但gson无法解决,所以我尝试Alt-Enter - Find jar on web但找不到图书馆.
我在我的build.gradle依赖项中有这个:
dependencies {
...
compile 'com.google.code.gson:gson:2.3'
compile 'com.google.api-client:google-api-client-android:1.19.0'
}
Run Code Online (Sandbox Code Playgroud)
我可以确认这个类确实存在.
我需要在我的应用程序中显示带内联样式的 html .有很多的文本必须在不同的意见,所以我不能使用网页视图(我试着用很多网页视图的,但应用程序变得很慢).正如我知道的TextView可以显示HTML,但它不能老是显示HTML内联样式.所以我该怎么做?有没有办法显示它或只生成带有内联样式的 HTML的简单标签的html ?
所以我需要像这样显示html:
<p style="text-align: center;"><span style="color: #ff0000; font-size: 36pt; font-family: 'comic sans ms', sans-serif;">Article Title</span></p>
Run Code Online (Sandbox Code Playgroud)
但是TextView无法理解风格.
这是Play文档的一个授权示例(版本2.0.4;我试图找到此文档的更新版本但不能):
trait Secured {
def username(request: RequestHeader) = request.session.get(Security.username)
def onUnauthorized(request: RequestHeader) = Results.Redirect(routes.Auth.login)
def withAuth(f: => String => Request[AnyContent] => Result) = {
Security.Authenticated(username, onUnauthorized) { user =>
Action(request => f(user)(request))
}
}
def withUser(f: User => Request[AnyContent] => Result) = withAuth { username => implicit request =>
UserDAO.findOneByUsername(username).map { user =>
f(user)(request)
}.getOrElse(onUnauthorized(request))
}
}
Run Code Online (Sandbox Code Playgroud)
总的来说这很简单,我想用这样的东西.
现在,在Play 2.4中,推荐的方法是不再使用单例(如上面的UserDAO),而是使用类和运行时DI(参见迁移指南或DI文档).
例如,我的服务和存储库类定义如下:
class AuthService @Inject()(accountRepo: AccountRepository) { }
class AccountRepository { …Run Code Online (Sandbox Code Playgroud) dependency-injection scala traits playframework playframework-2.4
考虑使用Play的JSON API(play.api.libs.json)的示例:
case class FooJson(
// lots of other fields omitted
location: Option[LocationJson]
)
object FooJson {
implicit val writes = Json.writes[FooJson]
}
Run Code Online (Sandbox Code Playgroud)
和
case class LocationJson(latitude: Double, longitude: Double)
object LocationJson {
implicit val writes = Json.writes[LocationJson]
}
Run Code Online (Sandbox Code Playgroud)
如果location为None,则生成的JSON将完全没有location字段。这是很好的并且是不可改变的。但是,如果出于某种原因(例如,使我的API更加自我记录),我该如何显式输出nullJSON?
{
"location": null
}
Run Code Online (Sandbox Code Playgroud)
我还尝试将字段定义为location: LocationJson并将其传递option.orNull给它,但是它不起作用(scala.MatchError: nullat play.api.libs.json.OWrites$$anon$2.writes)。对于非自定义类型(例如String或Double),此方法将在JSON输出中生成null。
所以,虽然使用Json.writes[FooJson]上述如图所示(或其他同样简单,即不具有编写自定义Writes实现),有一个干净的方式包括在JSON空?
我要问的是类似于JsonInclude.Include.ALWAYSJackson库中的内容(也是Jackson的默认行为)。同样, …
我有一个可滚动的文本视图,我想淡出底部边缘。我试过:
android:requiredFadingEdge="vertical"
Run Code Online (Sandbox Code Playgroud)
但这只会使顶部消失。如何淡化底部而不是顶部?
如何在 Google Play Console 中发布 Android App Bundle?
环境:Android Studio 3.2
在“生成签名包或APK”之后,我得到了一个文件“app.aab”。如何在 Google Play Console 中发布此文件以及“Bundle”和 APK 之间有何不同?
谢谢。
我使用Hudson自动测试一个非常大的重要产品.我想让我的测试主机能够运行尽可能多的并发构建,因为它们理论上会支持,除了excel-tests,它必须在每台机器上随时运行一个.任何数量的非excel测试都可以同时运行,但每台机器最多只能运行一次excel测试.
背景:
我的大多数测试都是正常的单元测试 - 我可以轻松地并行运行.遗憾的是,我的单元测试计划中的一个实质性且耗时的部分包括已在Excel中实现的测试.
您可能认为在Excel中实施测试很疯狂 - 实际上有一个重要原因:我们的大多数用户通过Excel访问我们的系统.Excel有自己古怪的数据处理方式,所以保证我们的东西适用于Excel用户的唯一方法就是逐字实现我们的Excel应用程序的注册测试.
我编写了一个测试运行工具,它允许我轻松地启动一组excel测试:每个测试都是一个.xls文件.每个组都是一个充满excel文件的文件夹.我有大约30个小组需要运行进行端到端测试.我的工具将每个测试的结果转换为Hudson能够理解的JUnit样式XML.测试使用pywin32com库来自动化excel.当他们自己运行时,他们是可靠的.
我有一组专门用于运行测试的计算机.每台机器都是四核的,理论上可以同时运行很多东西.不幸的是,我发现COM不能用于一次安全地控制每台机器超过1个excel.
也就是说,如果第二个构建星试图通过COM与Excel通信它可能会干扰已经运行的那个并导致两个测试都失败.
我可以运行许多其他非excel进程,因为机器将允许但我需要找到一种方法,以便Hudson不会尝试启动任何超过1个进程,这需要同时在任何一台机器上excel.
我即将发布具有常见网络功能(消息,墙壁等)的rails应用程序.我想使用某种后台处理(很可能是Bj)来从请求/响应周期中卸载任务.
当用户通过电子邮件邀请朋友加入和收发电子邮件时,就会发生这种情况
我不确定是否应该在我的数据库中删除这些邀请和通知,使用模型,然后每隔x分钟使用一个工作进程处理它,或者我是否应该使用Amazon SQS,存储消息并邀请那里并让我的工作人员从Amazon SQS检索它以进行处理(发送邀请/通知).
亚马逊的方法会从我的数据库中卸载,但我想从那里检索消息的速度较慢.
你怎么看?
ruby-on-rails backgroundworker amazon-sqs amazon-web-services