小编Rya*_*ley的帖子

如何在 Jetpack Compose 中获取上下文

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。但我得到了错误我尝试了很多倍数来源但失败了。

android kotlin android-jetpack android-jetpack-compose

46
推荐指数
10
解决办法
1万
查看次数

VS Code:连接远程服务器中的 docker 容器

我想在远程服务器的容器中工作。但它不起作用。

环境:

本地:Windows 10

ssh 的本地终端:Windows 10 中的 WSL

服务器:Ubuntu 18.04

我查了这两篇文章。

https://code.visualstudio.com/docs/remote/containers-advanced https://code.visualstudio.com/docs/containers/ssh

我遵循了这些步骤。

  1. 我在 VS Code 中安装了 [Remote Development] 扩展。
  2. 远程 SSH:连接到主机。它工作正常。
  3. 我在远程服务器上安装了 [Docker] 扩展。
  4. 现在我可以在 docker 选项卡中看到我的容器和图像。
  5. 我单击了一个容器并单击了 [Attach Visual Studio Code],它说没有要附加到的正在运行的容器。

在此处输入图片说明

docker vscode-remote

27
推荐指数
4
解决办法
2万
查看次数

将 Jetpack Compose 升级到 1.0.0?beta07 后出现 java.lang.NoSuchMethodError

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)

android android-livedata android-jetpack-compose

24
推荐指数
2
解决办法
2880
查看次数

如何从 M3U8 文件下载视频

我在本地保存了一个M3U8文件。

我想从上面的文件下载视频文件。我怎样才能下载这个视频?

m3u8

21
推荐指数
3
解决办法
10万
查看次数

在 API 级别 30 (Android 11) 上获取屏幕宽度:现在不推荐使用 getDefaultDisplay() 和 getMetrics()。我们应该用什么来代替?

我目前计算屏幕宽度是这样的:

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())现在已被弃用,我们应该改用什么?

android deprecated deprecation-warning

20
推荐指数
4
解决办法
1万
查看次数

如何全局设置 jdk.attach.allowAttachSelf=true

我正在尝试将我们的一个系统从 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。

那么我做错了什么,我该如何解决?

预先感谢您的意见。

java java-9

19
推荐指数
1
解决办法
4419
查看次数

android studio 4.2 不在 gradle 栏中显示签名报告

我使用 firebase 开始一个新项目,我必须从我的项目中获取 SHA1 密钥。最近我一直在将 android studio 更新到新版本 4.2,然后签名报告选项卡从Gradle 栏中消失了

按照图片:

在此处输入图片说明

如何在 android studio 4.2 中以简单的方式获得 SHA1?

android code-signing-certificate firebase android-studio

19
推荐指数
6
解决办法
8119
查看次数

使用 Geolocator 插件编译时出错

使用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,一切正常,但错误仍然存​​在。有谁知道可能是什么原因造成的?

dart-pub android-studio flutter flutter-dependencies

19
推荐指数
3
解决办法
1万
查看次数

使用 createComposeRule 运行 Jetpack Compose UI 测试时出现“RuntimeException:无法启动活动...无法解析 Intent 的活动”

使用堆栈跟踪运行测试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)

testing android android-jetpack-compose

17
推荐指数
2
解决办法
4163
查看次数

LocalBroadcastManager 已被弃用。我应该用什么代替它?

我正在 Android 中处理这个项目,其中一个方面需要一个带有前台服务的 CountdownTimer。Stack Overflow 上的其他一些答案提到 LocalBroadcastManager 适合我的需求。

然而,Android Developers 中的文档提到它已被弃用。关于我应该在它的位置使用什么的任何建议?文档提到了使用 LiveData,但我想知道是否有更简单的替代方法。

service android localbroadcastmanager android-livedata

17
推荐指数
1
解决办法
4614
查看次数