build.gradle.kts我在 KMM 项目的模块中设置了文件shared,如下所示:
android {
namespace = "com.my.project"
compileSdk = 33
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
defaultConfig {
minSdk = 24
targetSdk = 33
}
}
Run Code Online (Sandbox Code Playgroud)
对于targetSDK我收到以下警告:
targetSdk: Int?' is deprecated. Will be removed from library DSL in v9.0
Run Code Online (Sandbox Code Playgroud)
如何迁移这部分并targetSdk在我的 KMM 项目中为 Android 项目正确设置版本?
我禁用了fitSystemWindowsviaWindowCompat.setDecorFitsSystemWindows(window, false)在状态栏后面绘制,并且我正在使用insets accompanist 库来获取相应的插图,以将填充添加到特定的可组合项。
但是,如果我显示全屏对话框,该对话框仍然具有系统栏和导航栏的填充,并且拒绝在状态栏后面绘制。
该对话框类似于以下代码片段:
Dialog(
onDimissRequest = {},
properties = DialogProperties(usePlatformDefaultWidth = false)
) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
是否需要任何其他设置才能让对话框绘制在系统状态栏后面?
android android-dialog android-dialogfragment android-jetpack-compose
自新的 Android Studio版本“Chipmunk”以来,Gradle 更新帮助程序建议您package从 中删除关键字AndroidManifest.xml,而使用应用程序级别内的块namespace中的对象。androidbuild.gradle
但是,使用最新版本2.4.2以及标准导航库的版本,当为构建风格设置不同时2.5.0-rc01,kapt 插件生成的方向不再导入正确的资源路径。applicationId
例如,如果我的默认包名称是,并且我有一个名为“my.package.com.dev”my.package.com的风格,并且设置为,则生成的方向都会抛出构建错误:。devapplicationIdnamespacemy.package.comUnresolved reference: R
还有其他人遇到过这个问题吗?我们能做些什么来解决这个问题吗?
我必须删除namespace并放回packagemy 中的参数AndroidManifest才能解决此问题,但这似乎不对。
我正在使用 Jetpack Compose,并将其WebView封装在一个AndroidView可组合项中,如下所示:
AndroidView(modifier = modifier, factory = { context ->
WebView(context).apply {
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
webViewClient = WebViewClient()
settings.javaScriptEnabled = true
}
}, update = { webView -> webView.loadUrl(url) })
Run Code Online (Sandbox Code Playgroud)
在传统方式中,我们可以向 中添加OnBackPressedDispatcher来Activity拦截后按,并WebView通过 viewBinding 访问它来在 中导航,例如使用类似的函数WebView来goBack()检查是否可以返回canGoBack()。
但是我们如何使用 Jetpack Compose 方法实现相同的目标呢?
android android-webview kotlin onbackpressed android-jetpack-compose
我在我的 Android 应用程序中实现了 Google Play Billing API。
但我不明白为什么一个Purchase对象没有一个 sku 而是一个 sku 列表?在什么情况下a可以Purchase包含多个sku?
这使得后端站点上的验证有点尴尬,因为我需要迭代该 sku 列表并使用相同的PurchaseToken.
是否存在任何用例,其中单个购买可以在该列表中包含多个 sku,或者我可以假设该列表始终只包含一个 sku?
我的 Android 应用程序内部有一个BottomSheetScaffold如下所示的内容:
BottomSheetScaffold(
sheetGesturesEnabled = false,
sheetContent = { MyContent() },
scaffoldState = bottomSheetScaffoldState,
) {
..
}
Run Code Online (Sandbox Code Playgroud)
设置为sheetGesturesEnabled后false,工作表不应可滑动。但是,如果MyContent()包含像 之类的可滚动组件LazyColumn,则仍然可以在模态底部表单上执行滑动关闭手势。
这怎么可能?这是一个已知的错误吗?有什么解决办法吗?
android kotlin bottom-sheet android-jetpack-compose lazycolumn
我无法处理导致FindBugs抛出错误的以下警告。
我正在使用camera2 api。如您所见,我已经在检查 null 并另外捕获可能的 NullPointer 异常。CameraCharacteristics 类的 .get 方法使用 Nullable 进行注释,因此出现此错误。我不知道如何防止这种情况发生。检查 null 似乎不能完成这项工作。
同时,我将 SuppressFBWarnings Annotation 添加到我的项目中。但即使我抑制这样的警告:
@SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH")
private void setUpCamera(int width, int height) {
try {
for (String cameraId : cameraManager.getCameraIdList()) {
CameraCharacteristics cameraCharacteristics = cameraManager.getCameraCharacteristics(cameraId);
if (cameraCharacteristics != null && cameraCharacteristics.get(CameraCharacteristics.LENS_FACING) != null) {
int lensFaceingCameraCharacteristics = cameraCharacteristics.get(CameraCharacteristics.LENS_FACING);
if (cameraFacing == lensFaceingCameraCharacteristics) {
StreamConfigurationMap streamConfigurationMap = cameraCharacteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
previewSize = getPreviewSize(streamConfigurationMap.getOutputSizes(SurfaceTexture.class), width, height);
this.cameraId = cameraId;
}
}
}
} catch (CameraAccessException | NullPointerException …Run Code Online (Sandbox Code Playgroud) android ×7
kotlin ×2
annotations ×1
bottom-sheet ×1
findbugs ×1
gradle ×1
java ×1
lazycolumn ×1
package-name ×1
unboxing ×1