fun createListItem(itemIndex: Int) {
Padding(left = 8.dp, right = 8.dp, top = 8.dp, bottom = 8.dp) {
FlexRow(crossAxisAlignment = CrossAxisAlignment.Center) {
expanded(1.0f) {
Text("Item $itemIndex")
}
inflexible {
Button(
"Button $itemIndex",
style = ContainedButtonStyle(),
onClick = {
Toast.makeText(
this@MainActivity,
"Item name $itemIndex",
Toast.LENGTH_SHORT
).show()
})
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试以正常方式制作 Toast。但我得到了错误我尝试了很多倍数来源但失败了。
我想在远程服务器的容器中工作。但它不起作用。
环境:
本地:Windows 10
ssh 的本地终端:Windows 10 中的 WSL
服务器:Ubuntu 18.04
我查了这两篇文章。
https://code.visualstudio.com/docs/remote/containers-advanced https://code.visualstudio.com/docs/containers/ssh
我遵循了这些步骤。
observeAsState
将 Jetpack Compose 升级到 1.0.0?beta07 后,在 LiveData 对象上运行时出现以下错误。
java.lang.NoSuchMethodError: No interface method startReplaceableGroup(ILjava/lang/String;)V in class Landroidx/compose/runtime/Composer; or its super classes
Run Code Online (Sandbox Code Playgroud)
文档说升级时会出现错误,为了解决它,必须重新编译依赖于 Compose 的库。
我不知道必须这样做。我尝试再次制作该项目,也无济于事地清除和重建它。
这是我项目中的依赖项:
dependencies {
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation "androidx.compose.ui:ui:$compose_version"
implementation "androidx.compose.material:material:$compose_version"
implementation "androidx.compose.ui:ui-tooling:$compose_version"
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.0-alpha01'
implementation 'androidx.activity:activity-compose:1.3.0-alpha07'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
implementation "io.github.vanpra.compose-material-dialogs:datetime:0.4.0"
implementation "io.github.vanpra.compose-material-dialogs:datetime:0.4.0"
implementation "androidx.appcompat:appcompat:$appCompatVersion"
implementation "androidx.activity:activity-ktx:$activityVersion"
implementation "androidx.room:room-ktx:$roomVersion"
kapt "androidx.room:room-compiler:$roomVersion"
androidTestImplementation "androidx.room:room-testing:$roomVersion"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.30"
api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines"
api …
Run Code Online (Sandbox Code Playgroud) 我目前计算屏幕宽度是这样的:
public static int getScreenWidth(@NonNull Context context) {
DisplayMetrics displayMetrics = new DisplayMetrics();
((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
return displayMetrics.widthPixels;
}
Run Code Online (Sandbox Code Playgroud)
由于这两个函数(getDefaultDisplay()和getMetrics())现在已被弃用,我们应该改用什么?
我正在尝试将我们的一个系统从 java 8 移动到 java 9,并且大约三分之一在 java 8 中正常工作的单元测试失败并出现以下错误:
java.io.IOException: Can not attach to current VM
Run Code Online (Sandbox Code Playgroud)
Google 带我看了几页,我很快就明白在 Java 9 中,默认行为已更改,以防止附加到当前 VM 并返回到您需要将系统属性设置jdk.attach.allowAttachSelf
为 true的旧方式。
在 IntelliJ 中设置时,测试工作正常。更改 build.gradle 以包含此内容时,同样有效:
test {
jvmArgs '-Djdk.attach.allowAttachSelf=true'
}
Run Code Online (Sandbox Code Playgroud)
但是,我更喜欢全局设置此设置,因此我不需要破解我的 build.gradle 和 IntelliJ。
我在 ubuntu 上运行 java 9 并更改/etc/profile.d/jdk.sh
为包含以下内容:
export JDK_JAVA_OPTIONS="-Djdk.attach.allowAttachSelf=true"
Run Code Online (Sandbox Code Playgroud)
当运行我的 Gradle 构建时,我可以看到设置被拾取,因为我在构建输出中低于:
NOTE: Picked up JDK_JAVA_OPTIONS: -Djdk.attach.allowAttachSelf=true
Run Code Online (Sandbox Code Playgroud)
但是,测试不断失败,并出现相同的 IOException。
那么我做错了什么,我该如何解决?
预先感谢您的意见。
我使用 firebase 开始一个新项目,我必须从我的项目中获取 SHA1 密钥。最近我一直在将 android studio 更新到新版本 4.2,然后签名报告选项卡从Gradle 栏中消失了
按照图片:
如何在 android studio 4.2 中以简单的方式获得 SHA1?
使用Geolocator 插件编译项目时出现当前错误:
C:\src\flutter\.pub-cache\hosted\pub.dartlang.org\geolocator_android-2.0.0\android\src\main\java\com\baseflow\geolocator\location\LocationMapper.java:29: error: cannot find symbol
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
^
symbol: variable S
location: class VERSION_CODES
C:\src\flutter\.pub-cache\hosted\pub.dartlang.org\geolocator_android-2.0.0\android\src\main\java\com\baseflow\geolocator\location\LocationMapper.java:30: error: cannot find symbol
position.put("is_mocked", location.isMock());
^
symbol: method isMock()
location: variable location of type Location
2 errors
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':geolocator_android:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Run Code Online (Sandbox Code Playgroud)
我已经创建了另一个项目来测试是否会发生错误,并且在导入包时也会发生错误。我按照gradle.properties配置并将compileSdkVersion设置为30并检查了Flutter Doctor,一切正常,但错误仍然存在。有谁知道可能是什么原因造成的?
使用堆栈跟踪运行测试createComposeRule
并命中堆栈跟踪(省略不相关部分):
java.lang.RuntimeException: Could not launch activity
at androidx.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:495)
...
Caused by: java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=my.app.package.name.here/android.app.Activity }
...
Run Code Online (Sandbox Code Playgroud) 我正在 Android 中处理这个项目,其中一个方面需要一个带有前台服务的 CountdownTimer。Stack Overflow 上的其他一些答案提到 LocalBroadcastManager 适合我的需求。
然而,Android Developers 中的文档提到它已被弃用。关于我应该在它的位置使用什么的任何建议?文档提到了使用 LiveData,但我想知道是否有更简单的替代方法。