移动开发

如何在KMP/CMP项目中使用Icons.Rounded.*?
我遇到了一个问题,就是在我的KMP/CMP项目中无法使用Icons.Rounded.settings,即使已经添加了实现和导入。在之前的所有Android项目中它都能工作,但在CMP中却不行。有人知道这是为什么以及我应该怎么做吗? implementation in build.gradle.kts: implementation("org.jetbrains.compose.material:material-icons-extended:1.10.0") import in MainScreen.kt
移动开发 |
该视频无法播放,错误代码:152-4
在我的应用中以嵌入方式显示YouTube视频时,它显示错误代码:152 - 4。 我只是想做一个视图,通过传入YouTube ID就能在应用内的特定屏幕/视图中播放该视频。现在在尝试播放时就会出现这个错误。 有没有解决方法?到现在还没找到。 我的代码: final class YouTubePlayerViewController: UIViewController, WKNavigationDelegate { var youtubeId: String private var webView: WKW
移动开发 |
在内置的Kotlin中不允许使用kotlin.sourceSets DSL来添加Kotlin源文件
我是尝试更新Gradle依赖并使用android.sourceSets DSL。我似乎找不出配置中出错的地方。我应该如何修改Gradle文件,以便不再使用kotlin.sorceSets DSL? 这是app模块的build.gradle.kts文件: plugins { alias(libs.plugins.android.application) alias(libs.plugins.compose.compiler) } android { ... defaultConfig { ... ksp {
移动开发 |
Ktor TCP读取字节
我想请教或确认。若我想在Kotlin Multiplatform(KMP)中通过Ktor从 TCP连接读取原始字节,是不可能的,还是没有原生库函数可以帮助我在一个TCP数据包内读取所有字节。我的意思是,我需要在一个TCP数据包内读取所有字节,其长度有时可能超过50字节,甚至可能达到3000字节或更多。我在这里在寻求一个选项。是否需要创建某种专有包装器,用来分割有效载荷并包含数据载荷的TVL结构,并据此自定义Ktor的读取函数?还是有其他选项?我的意思是,Ktor是否有某个函数可以先缓冲来自一个TCP数据包
移动开发 |
如何解决“xcodebuild”因错误码65而退出的问题?这是来自npx expo run:ios的错误
这几天我再也无法为我的Expo React Native项目构建开发版本了。每次运行npx expo run:ios时,我都会看到以下错误信息: ❌ error: Filename "JavaScriptValue.swift" used twice: '/Users/fine/Desktop/coding/first-app-clean/node_modules/expo-modules-core/ios/JS/JavaScriptValue.swift' and '/Users/fine/Deskto
移动开发 |
在一个栈上设置内边距,其子视图可能是空视图
假设我们有一个OptionalView,当某个条件成立时它会渲染一个视图(这个条件是什么,我们并不知道),否则什么也不渲染(将主体解析为空视图)。 struct OptionalView: View { private var random: Int { (1...5).randomElement()! } var body: some View { if random == 1 { // Intentional, we cannot check in parent if this condition i
移动开发 |
Flutter在特定设备上无法获取设备令牌
我正在开发一个Flutter应用,在应用启动时获取设备令牌。这在几乎所有设备上都正常工作,只有少数设备例外。当我们联系用户时,发现这个问题仅发生在Redmi设备上。这感觉很奇怪。下面是用于获取设备令牌并通过重复该过程来确保其被正确获取的代码。 import 'dart:async'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/foundation.dart'; class Fcm
移动开发 |
Jetpack Compose中的渐变与1像素线的颜色错位
我最初的目标是使用渐变把我的图片与背景实现平滑过渡。 使用渐变时,我出现了一条一像素的线,打破了与卡片其余部分的自然过渡。 这条线出现在渐变的末端。 下面是最小复现代码,我将给出我的“修复”方法,但看起来像是在这个问题上打补丁而不是真正修复这条一像素的线 import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.fou
移动开发 |
怎么从支付应用切回到我的应用?
我在一台集成了NEXO协议和Besteron作为支付方式的SUNMI P2终端上遇到了一个问题。为了处理这笔支付,我的应用向NEXO API发送了一个HTTP请求,随后显示了Besteron的界面,提示用户刷卡。当读取到卡片后,这个Besteron界面仍然保持在前台,而不会将用户带回到我的应用。 Android版本11 我向NEXO协议发送了HTTP请求,当收到响应时,paymentResult.collect会触发。在collect中,我尝试通过Intent.FLAG_ACTIVITY_REORDER_
移动开发 |
如何使用Kotlinx.serialization将带编号的JSON字段映射到一个列表
我正在使用一个API(TheMealDB),它以这种格式返回配料: { "strIngredient1": "Salmon", "strIngredient2": "Soy Sauce", "strIngredient3": "Sugar", ... "strIngredient20": null, "strMeasure1": "2 fillets", "strMeasure2": "3 tbsp", "strMeasure3": "1 tbsp", ... } 因此,它并不是返回像: ingredie
移动开发 |
如何在嵌套的ScrollView中(垂直方向包含水平方向的ScrollView)通过编程滚动到指定的单元格?
我有一个SwiftUI视图,里面是 嵌套的滚动视图 —— 一个垂直的 ScrollView,其中包含一个水平的 ScrollView,它展示一个格子网格(列A-K,行1-100)。我想在点击按钮时,编程地滚动到某个特定的单元格(例如 K:60)。 部署目标:iOS 16(iOS 17+的解决方案可接受,但优先与iOS 16兼容) 约束: 我无法计算目标单元格的确切坐标/偏移量——这是一个简化的生产代码演示,在这种场景下不现实进行手动偏移计算。 import SwiftUI struct ContentVi
移动开发 |
在Ubuntu 24.04上,Android Studio的模拟器因为错误139不断退出
我已经安装了Android Studio,先是snap版本,其次是从官方网站下载的版本,但这两个版本的模拟器在启动后都一直以错误代码139退出。 平台为Ubuntu 24.04,运行在一台搭载英特尔i7的笔记本上,显卡为Nvidia 2070 Max-Q,驱动版本为590。 以下是在Android Studio第一次启动后直接点击启动模拟器按钮时输出的日志: 2026-03-07 13:16:38,952 [ 45160] INFO - Emulator: Medium Phone API 36.1 -
移动开发 |
如何安装Visual Studio的指定版本?
我在Visual Studio的一个特定功能上遇到了问题(针对本地iOS设备的热重载,基于MAUI),微软在17.14.18之后的VS 2022中部分移除了这个功能(它在17.14.18版可用,但在17.14.19及之后版本就不可用)。 VS 2026已经把这个功能完全移除了。 因此我在寻找一种安装特定版本的VS 2022(17.14.18)的办法,好让我保留本地iOS设备热重载的能力。 我在不同的微软网站上搜索,只找到了获取最新版17.14.x的方法(但这不是我想要的)。 解决方案 我的信息有点儿老,但
移动开发 |
在QGraphicsView上实时捕获和绘制时出现闪烁
我在使用Qt 6.6开发一个颜色选择器小部件,QWidget 和 QGraphicsView,遇到了两个问题: 问题1) 当 QGraphicsView 没有缩放、窗口被移动且图像被绘制时,它会出现闪烁。我不确定这是否可以称为闪烁、鬼影,还是其他什么,我找不到导致图像像这样抖动的原因: https://i.imgur.com/NCCFeiq.gif 为尽量提高捕获速度,我尝试了以下几种做法: 将 QTimer TimerType 设置为 Qt::PreciseTimer 将定时器间隔设置为0 在Qt的窗口
移动开发 |
在尝试加载模型数据时,SwiftData触发了EXC_BREAKPOINT
我在单元测试中尝试用SwiftData加载模型数据时,遇到了一个运行时“错误”,难以解决。 我在MainActor上使用makeModelContext函数来创建一个内存中的模型上下文: /// Create an in-memory ModelContext containing all app models for testing. /// This mirrors the models registered in the App's ModelContainer. @MainActor static
移动开发 |
在iOS26启动弹出层时,UI组件初始显示的颜色就不对
在iOS26使用SwiftUI启动.sheet时,我遇到了一个怪异的bug。视图首次出现时,按钮和选择器等组件的初始颜色是错误的,但很快就会变成正确的颜色: https://youtube.com/shorts/trKvZCYuYQ8 我知道如果把按钮上的.disabled注释掉,它就不会再这样了,但选择器就不确定了。以下是完整的代码: import SwiftUI struct ContentView: View { @State private var selection = "Option 1" @
移动开发 |
Android存储访问框架——在没有写权限的情况下也能删除
我目前正在用Kotlin开发一个Android应用,遇到了新版存储访问框架(SAF)的一些问题。在我的应用中,用户可以选择两个文件夹,我们把它们称为源文件夹(source)和目标文件夹(target)。应用应该对源文件夹仅具备只读权限,对目标文件夹具备读写权限。我更希望系统能强制执行这一点,这样应用就不会删除它不应该删除的文件。 但问题是应用在这两个文件夹中都能删除文件,我不理解为什么。权限已像这样正确持久化: // if (folderType == "source") { requireContext
移动开发 |
如何制作一个带动画的L 形视图菜单?(自定义菜单思路/ SwiftUI)
Apple菜单和Sport App很酷,但我的想法当然比别人更酷。我正在尝试做出新东西! 以下是完整代码: import SwiftUI struct ContentView: View { @State private var isExpanded = false @State private var pillWidth: CGFloat = 0 let height: CGFloat = 40 var body: some View { ZStack(alignment: .topLeading) {
移动开发 |
如何为按钮在启用、禁用、浅色模式和深色模式下设置自定义颜色
我在定义能覆盖所有所需状态的自定义按钮颜色时遇到困难:启用/禁用、明暗主题、文本和背景颜色。 对于文本和背景在启用与禁用状态下的颜色,我已经定义了两个文件: drawable/btn_text.xml:
移动开发 |
在自定义iOS键盘扩展中提取所选文本
我正在尝试在自定义键盘扩展中获取所选文本。 使用 textDocumentProxy.selectedText 只能提供所选文本的前后部分,而不是完整内容。 我也尝试通过编程方式移动光标,然后访问文本被截断的部分。然而,即使在文本选择过程中通过编程方式移动光标,读取 documentContextBeforeInput 或 documentContextAfterInput 仍然无法返回被截断的句子。 如何在自定义键盘扩展中可靠地获取完整的所选文本? 解决方案 在自定义键盘扩展中,您无法可靠地获取完整的所
移动开发 |