我有个问题.我将一些图像存储在DB中作为base64,现在我需要编辑包含此图像的此对象.用户在表单中上传图像,然后将其转换为base64并将其存储在DB中.现在我的问题很热,将base64图像转换回IFormFile以显示它以编辑整个对象.
日Thnx
Koin 是否提供将多个依赖项绑定到集合中的功能,就像 Dagger 提供的多重绑定一样?
假设我有这个界面:
interface Initializer: (Application) -> Unit
Run Code Online (Sandbox Code Playgroud)
这个接口有几个实现,例如:
class LoggingInitializer: Initializer {
override fun invoke(p1: Application) {
Timber.plant(Timber.DebugTree())
}
}
Run Code Online (Sandbox Code Playgroud)
使用bind修饰符在不同模块中提供实现:
val coreToolsModules = module {
single { LoggingInitializer() } bind Initializer::class
}
Run Code Online (Sandbox Code Playgroud)
并且此类模块安装在应用程序的 Application 类中:
class TestApplication: Application() {
override fun onCreate() {
super.onCreate()
val startKoin = startKoin {
logger(PrintLogger())
androidContext(this@TestApplication)
modules(listOf(coreToolsModules))
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想将 Initializer 类的所有实现作为一个集合注入到我的 Application 类中,以便执行这样的初始化:
val initializers: Set<Initializer> by inject()
//in onCreate()
initializers.forEach { it.invoke(this) }
Run Code Online (Sandbox Code Playgroud) 最近模拟器 29.2.0 稳定版发布。这是相关文档https://androidstudio.googleblog.com/2019/09/emulator-2920-stable.html。
更新后,我的模拟器没有Displays在模拟器中显示上述文档中提到的选项。
根据文档,我创建了一个模拟器Android 10 (Q)。
这是屏幕截图。
注意:无效和重新启动不起作用。已经尝试过了。
我有长格式的数据,这些数据将按地理位置分组。我想计算每个感兴趣的变量与所有其他感兴趣的变量之间的差异。我无法在单个数据表语句中弄清楚如何有效地执行此操作,因此解决方法也随之引入了一些新错误(我修复了具有更多解决方法的错误,但在这里也将提供帮助!)。
然后,我想将结果列传递给ggplot函数,但是无法使用推荐的方法来工作,因此我使用了不推荐使用的方法。
library(data.table)
library(ggplot2)
set.seed(1)
results <- data.table(geography = rep(1:4, each = 4),
variable = rep(c("alpha", "bravo", "charlie", "delta"), 4),
statistic = rnorm(16) )
> results[c(1:4,13:16)]
geography variable statistic
1: 1 alpha -0.62645381
2: 1 bravo 0.18364332
3: 1 charlie -0.83562861
4: 1 delta 1.59528080
5: 4 alpha -0.62124058
6: 4 bravo -2.21469989
7: 4 charlie 1.12493092
8: 4 delta -0.04493361
base_variable <- "alpha"
Run Code Online (Sandbox Code Playgroud)
从这一点出发,理想情况下,我希望编写一个简单的代码,按地理位置分组,然后以相同的格式返回此表,但每个组中每个变量的统计信息为(base_variable-变量)。
我不知道如何执行此操作,因此下面是我的解决方法,我们欢迎您提出有关更好方法的建议。
# Convert to a wide table so we can do the subtraction by rows …Run Code Online (Sandbox Code Playgroud) 当我 ssh 进入 aws ec2 Linux 实例时,我是ec2-user. 该实例是 Jenkins master。当我尝试su - jenkins输入正确的密码时,系统显示Last login: ....看起来切换成功。但whoami说我还在ec2-user。
我缺少什么?谢谢!
在 Android 11 中遇到以下问题,并且在以下 11 中工作正常。录制音频文件时。
这是一个例外。
java.lang.IllegalArgumentException: Unsupported MIME type "audio/wav"
Run Code Online (Sandbox Code Playgroud)
代码
File outFile = new File(outPath);
long fileSize = outFile.length();
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, outPath);
values.put(MediaStore.MediaColumns.TITLE, title.toString());
values.put(MediaStore.MediaColumns.SIZE, fileSize);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/wav");
values.put(MediaStore.Audio.Media.ARTIST, getApplicationInfo().name);
values.put(MediaStore.Audio.Media.DURATION, duration);
values.put(MediaStore.Audio.Media.IS_MUSIC, true);
Uri uri = MediaStore.Audio.Media.getContentUriForPath(outPath);
final Uri newUri = getContentResolver().insert(uri, values);
Run Code Online (Sandbox Code Playgroud) Am getting following error while building project. Is there any solution for this
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResources'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:59)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:130)
at …Run Code Online (Sandbox Code Playgroud) class ProfileFragment : Fragment() {
private lateinit var tvhelpcenter: TextView
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_profile, container, false)
/* val view = inflater?.inflate(
R.layout.fragment_home,
container, false
)*/
/*val tv_help_center: TextView? = view?.findViewById(R.id.tv_help_center)
tv_help_center!!.setOnClickListener {
requireActivity().run {
startActivity(Intent(this, HelpCenterActivity::class.java))
finish()
}
}*/
}
}
Run Code Online (Sandbox Code Playgroud) android ×5
kotlin ×2
amazon-ec2 ×1
android-10.0 ×1
android-11 ×1
base64 ×1
data.table ×1
ggplot2 ×1
grouping ×1
iformfile ×1
koin ×1
linux ×1
mime-types ×1
r ×1