小编Pet*_*huk的帖子

java.lang.BootstrapMethodError:CameraX (1.0.0-alpha06) 上调用站点#2 bootstrap 方法的异常

我正在尝试使用 CameraX API 来获取照片,但是在我更新到新的 API 版本 1.0.0-alpha06 后,它开始崩溃

CameraX.bindToLifecycle(...)
Run Code Online (Sandbox Code Playgroud)

方法。

错误日志是:

Process: com.aximetria.aximetria.debug, PID: 2629
    java.lang.BootstrapMethodError: Exception from call site #2 bootstrap method
        at androidx.camera.core.Preview.updateListener(Preview.java:368)
        at androidx.camera.core.Preview.updateOutput(Preview.java:586)
        at androidx.camera.core.Preview.updateConfigAndOutput(Preview.java:363)
        at androidx.camera.core.Preview.onSuggestedResolutionUpdated(Preview.java:524)
        at androidx.camera.core.UseCase.updateSuggestedResolution(UseCase.java:408)
        at androidx.camera.core.CameraX.calculateSuggestedResolutions(CameraX.java:684)
        at androidx.camera.core.CameraX.bindToLifecycle(CameraX.java:195)
        at com.aximetria.aximetria.ui.main.profile.avatar.TakeAvatarPhotoFragment.initCamera(TakeAvatarPhotoFragment.kt:169)
        at com.aximetria.aximetria.ui.main.profile.avatar.TakeAvatarPhotoFragment.initCamera$default(TakeAvatarPhotoFragment.kt:117)
        at com.aximetria.aximetria.ui.main.profile.avatar.TakeAvatarPhotoFragment$onViewCreated$1.onPermissionsChecked(TakeAvatarPhotoFragment.kt:55)
    ...
Run Code Online (Sandbox Code Playgroud)

我的代码是:

    private fun initCamera(reverseFacing: Boolean = false) {
        ...

        val previewConfig = PreviewConfig.Builder()
                .setTargetAspectRatio(AspectRatio.RATIO_4_3)
                .setLensFacing(lensFacing)
                .build()

        val preview = Preview(previewConfig)
        preview.setOnPreviewOutputUpdateListener { previewOutput ->
            val parent = binding.preview.parent as ViewGroup
            parent.removeView(binding.preview)
            parent.addView(binding.preview, 0)
            binding.preview.surfaceTexture = previewOutput.surfaceTexture …
Run Code Online (Sandbox Code Playgroud)

crash android android-camerax

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

JetpackCompose 中 @Preview 的 isInEditMode 模拟

我正在使用 Jetpack compose 开发一个应用程序,并且在 Jetpack 预览期间遇到字体导入问题。预览为空并显示错误(渲染问题):

Font resource ID #0x... cannot be retrieved
Run Code Online (Sandbox Code Playgroud)

例如,在自定义视图中,我们有一个

isInEditMode
Run Code Online (Sandbox Code Playgroud)

在设计部分控制布局预览,我们可以禁用一些破坏预览的逻辑。

有什么方法可以为 Jetpack @Preview 做到这一点吗?我目前阅读了所有可用的文档/文章,但没有找到答案。

非常感谢您提供任何信息。

Jetpack Compose 代码是:

@Composable
fun ScreenContent() {
    Row(
        modifier = Modifier
            .wrapContentSize()
            .fillMaxWidth()
            .clip(RoundedCornerShape(50))
            .background(colorResource(id = R.color.search_field_background_color)),
        horizontalArrangement = Arrangement.Center
    ) {
        Icon(
            painterResource(id = R.drawable.ic_search_image), contentDescription = stringResource(R.string.search_screen_magnifier_icon_content_description)
        )
        Text(
            modifier = Modifier.padding(all = 8.dp),
            text = stringResource(R.string.search_screen_search_field_text),
            fontSize = 12.sp,
            color = colorResource(id = R.color.search_field_text_color),
            fontFamily = getFont(R.font.nunito_sans_extra_bold)
        )
    }
}

//according to the plan this method …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose android-jetpack-compose-preview

12
推荐指数
2
解决办法
1997
查看次数

如何以编程方式打开(在屏幕中显示)NavigationView

如何以编程方式打开(在屏幕上显示)NavigationView?我找不到任何可以帮助的功能.

我有这个xml文件:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    //...

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/nav_header"
        app:itemTextColor="#333"
        app:itemIconTint="#333"
        app:menu="@menu/navigation_drawer_items" />

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

android material-design navigationview

8
推荐指数
2
解决办法
6712
查看次数

在CameraX(1.0.0-alpha06)上的takePicture需要执行程序

从更新后

androidx.camera:camera-core:1.0.0-alpha03
Run Code Online (Sandbox Code Playgroud)

androidx.camera:camera-core:1.0.0-alpha06
Run Code Online (Sandbox Code Playgroud)

setTargetAspectRatio(在ImageCaptureConfig.Builder中)和takePicture(在ImageCapture中)的签名已更改。

网络上的官方文档和信息并未显示如何使用新方法(如何指定执行程序)。

更新后损坏的代码:

...
val captureConfig = ImageCaptureConfig.Builder()
    .setTargetAspectRatioCustom(Rational(1, 1)) //this method changed
    .setFlashMode(flashMode)
    .setLensFacing(lensFacing)
    .build()

val capture = ImageCapture(captureConfig)

binding.takeAPhoto.setOnClickListener {
    ...
    val imageFile = createTempFile(System.currentTimeMillis().toString(), ".jpg")
    capture.takePicture(imageFile, object : ImageCapture.OnImageSavedListener { //this method also changed

        override fun onImageSaved(file: File) {
            ...
        }

        override fun onError(useCaseError: ImageCapture.UseCaseError, message: String, cause: Throwable?) {
            ...
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有人拥有(或知道在哪里可以找到)如何使用新方法的示例?提前致谢

android androidx android-camerax

5
推荐指数
2
解决办法
812
查看次数