在用于ConstraintLayout.One的android studio SDK工具中有两个选项ConstraintLayout for android,另一个是Solver for ConstraintLayout.
这两个选项有什么区别?
据我所知postDelayed()有两个参数runnable和duration delay.在kotlin下面的代码实际上做了什么:
Handler().postDelayed({
sendMessage(MSG, params.id)
taskFinished(params, false)
}, duration)
Run Code Online (Sandbox Code Playgroud)
这里第一个是两个函数调用,第二个是持续时间延迟.哪里可以运行?这对于kotlin来说是不是像lambda?有人请解释一下吗?
随着android studio推出了两款新工具D8和R8.根据谷歌文档D8是一个dex工具,R8是一个progourd工具,但由于他们的解释两者都做了几乎相同的事情如下:
D8是一个将java字节代码转换为dex代码的dexer.
R8是一个java程序缩小和缩小工具,它将java字节代码转换为优化的dex代码.
它似乎都将java字节代码逐字转换为dex代码.那么,实际上他们在转换dex代码时是在内部做什么的?
Google推出了新的Android扩展库(AndroidX)的早期预览,这基本上是根据其文档对现有android支持库和体系结构软件包进行的新替代。
但是这些android和androidx包之间的实际区别是什么。这两个软件包的正确用例,以及如何将现有的android软件包转换为androidx软件包。哪些软件包/库支持这些转换?
在android studio 3.3中,当我尝试使用仅传统选项导入启动器图标的图像时,即使在导入图像后显示白色背景图标,其显示相同并且不使用导入的图标更改图标.
android studio 3.3有什么问题?有解决方案吗
当我添加com.google.firebase:firebase-config:19.1.0使用 firebase 远程配置时出现此问题。
java.lang.RuntimeException: Duplicate class com.google.protobuf.AbstractMessageLite found in modules protobuf-java-2.5.0.jar (com.google.protobuf:protobuf-java:2.5.0) and protobuf-lite-3.0.1.jar (com.google.protobuf:protobuf-lite:3.0.1)
Run Code Online (Sandbox Code Playgroud)
我已经更新都firebase-analytics和google-play-services到最新版本。但问题仍然存在。但是当我将远程配置更改为旧版本时,18.0.0 or less它工作正常。但我想使用最新版本。我的依赖:
firebase_analytics : "com.google.firebase:firebase-analytics:17.2.2",
fcm : "com.google.firebase:firebase-messaging:20.1.0",
performance : "com.google.firebase:firebase-perf:19.0.0",
config : "com.google.firebase:firebase-config:19.0.0",
Run Code Online (Sandbox Code Playgroud)
也试图排除下面不起作用:
exclude group: 'com.google.protobuf', module: 'protobuf-lite'
exclude group: 'com.google.protobuf', module: 'protobuf-java'
Run Code Online (Sandbox Code Playgroud) 在Android Studio 3.0中,有一个选项android.enableD8可以启用D8(下一代Dex编译器).在Android Studio 3.1中android.enableD8.desugaring,根据其更新添加了一个新选项.
android.enableD8.desugaring在Android Studio 3.1中实际上做了什么,与android.enableD8选项相比有什么区别?
android dex android-studio android-gradle-plugin android-studio-3.1
我无法用现有的密钥库签署我的apk.它在签名时给我这个错误:
com.android.ide.common.signing.KeytoolException: Failed to read key Cannot recover key
因此,通过以下链接,我尝试更改密码,但keytool error: java.security.UnrecoverableKeyException: Cannot recover key在执行此命令时给出了错误:
keytool -keypasswd -alias %MyKeyAlias% -new %newpassword% -keystore KeyStore.jks
我已经在playstore中使用此密钥库提供了一个版本.
我android.enableAapt2 = false在我的gradle.properties文件中使用.将android studio更新为3.1后,我的项目显示警告,更新或删除AAPT2标志,如下所示:
The option 'android.enableAapt2' is deprecated and should not be used anymore.
Use 'android.enableAapt2=true' to remove this warning.
It will be removed at the end of 2018.
Run Code Online (Sandbox Code Playgroud)
正如他们所建议的,在将标志更改为true显示错误之后:
AAPT2 error: check logs for details
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':App:processDebugResources'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
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:248)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at …Run Code Online (Sandbox Code Playgroud) 在 kotlin 中,我们可以同时使用这两种方法lazy{}和getter()
延迟初始化:
internal val connector by lazy {
serviceConnector
}
Run Code Online (Sandbox Code Playgroud)
吸气剂():
internal val connector : ServiceConnector
get() = serviceConnector
Run Code Online (Sandbox Code Playgroud)
何时使用哪种方法以及这两种方法在幕后实际做了什么。哪一种是最好的方法?
在棉花糖中,添加了ART的AOT编译器。从Android N起,除了AOT外,还添加了另一个编译器JIT。
什么是AOT编译器特定的作业/功能,什么是JIT编译器的作业/功能?
更新 android studio 3.3 canary 7 后convert java file to kotlin file is showing disable。
Android Studio Menu -> Code -> Convert Java File to Kotlin File
Run Code Online (Sandbox Code Playgroud)
它的显示禁用。为什么它被禁用以及如何启用它 android studio 最新版本。
我不知道是否可以使用adb命令打开/关闭android调试模式.
是否有任何adb命令可以打开/关闭android调试模式.如果有任何建议或任何方式,请高度赞赏.
android ×13
kotlin ×4
dex ×2
aapt2 ×1
adb ×1
android-d8 ×1
android-r8 ×1
androidx ×1
debug-mode ×1
firebase ×1
handler ×1
jit ×1
signed-apk ×1