小编Rya*_*ley的帖子

Jetpack Compose 预览渲染出现 java.lang.ClassNotFoundException 问题:android.os.ext.SdkExtensions 错误

我能够使用撰写预览,但在一些库更新后,我无法再使用它。我该如何解决这个错误?

\n
java.lang.NoClassDefFoundError: android/os/ext/SdkExtensions \xc2\xa0\xc2\xa0\nat androidx.core.os.BuildCompat$Extensions30Impl.<clinit>(BuildCompat.java:302) \xc2\xa0\xc2\xa0\nat androidx.core.os.BuildCompat.<clinit>(BuildCompat.java:256) \xc2\xa0\xc2\xa0\nat androidx.compose.ui.text.android.BoringLayoutFactory.measure(BoringLayoutFactory.kt:49) \xc2\xa0\xc2\xa0\nat androidx.compose.ui.text.android.LayoutIntrinsics.getBoringMetrics(LayoutIntrinsics.kt:55) \xc2\xa0\xc2\xa0\nat androidx.compose.ui.text.android.LayoutIntrinsics.getMaxIntrinsicWidth(LayoutIntrinsics.kt:82) \xc2\xa0\xc2\xa0\nat androidx.compose.ui.text.platform.AndroidParagraphIntrinsics.getMaxIntrinsicWidth(AndroidParagraphIntrinsics.android.kt:64) \xc2\xa0\xc2\xa0\nat androidx.compose.ui.text.MultiParagraphIntrinsics$maxIntrinsicWidth$2.invoke(MultiParagraphIntrinsics.kt:82) \xc2\xa0\xc2\xa0\nat androidx.compose.ui.text.MultiParagraphIntrinsics$maxIntrinsicWidth$2.invoke(MultiParagraphIntrinsics.kt:80) \xc2\xa0\xc2\xa0\nat _layoutlib_._internal_.kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81) \xc2\xa0\xc2\xa0\nat androidx.compose.ui.text.MultiParagraphIntrinsics.getMaxIntrinsicWidth(MultiParagraphIntrinsics.kt:80) \xc2\xa0\xc2\xa0\nat androidx.compose.foundation.text.TextDelegate.getMaxIntrinsicWidth(TextDelegate.kt:121) \xc2\xa0\xc2\xa0\nat androidx.compose.foundation.text.TextDelegate.layoutText-K40F9xA(TextDelegate.kt:200) \xc2\xa0\xc2\xa0\nat androidx.compose.foundation.text.TextDelegate.layout-NN6Ew-U(TextDelegate.kt:248) \xc2\xa0\xc2\xa0\nat androidx.compose.foundation.text.TextController$measurePolicy$1.measure-3p2s80s(CoreText.kt:306) \xc2\xa0\xc2\xa0\nat androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:106) \xc2\xa0\xc2\xa0\nat androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:649) \xc2\xa0\n......\n
Run Code Online (Sandbox Code Playgroud)\n

android kotlin android-jetpack-compose

16
推荐指数
1
解决办法
2885
查看次数

Jetpack Compose 相当于 RecyclerView 或 ListView 是什么?

在 Jetpack Compose 中,如何在仅布置可见项目的同时显示大数据列表,而不是在初始布局过程中组合和布置每个项目?这将是类似RecyclerViewListViewView工具包。

可以使用for循环将 aColumn中的所有组件放在 a中VerticalScroller,但这会导致丢帧和大量项目的性能不佳。


注意:这是一个规范的自我回答问题,以抢先/处理类似的问题

android kotlin android-jetpack androidx android-jetpack-compose

14
推荐指数
1
解决办法
9112
查看次数

在 onClick 处理程序中传递参数的最有效方法

我正在使用内联箭头函数来更改onClickReact 组件中某些 div的处理程序,但我知道这在性能方面不是一个好方法。

客观地说,设置onClick需要参数的处理程序的最有效方法是什么?这是我尝试过的:

1.内联箭头函数

changeRoute (routeName) {
  console.log(routeName)
}
render() {
  return (
    <>
      <div onClick={() => this.changeRoute("page1")}>1</div>
      <div onClick={() => this.changeRoute("page2")}>2</div>
    </>
  )
}
Run Code Online (Sandbox Code Playgroud)

2.如果我使用构造函数绑定,那么我如何传递道具?

constructor() {
  super(props)
  this.changeRoute = this.changeRoute.bind(this)
}
changeRoute (routeName) {
  console.log(routeName)
}
render() {
  return (
    <>
      <div onClick={this.changeRoute}>1</div>
      <div onClick={this.changeRoute}>2</div>
    </>
  )
}
Run Code Online (Sandbox Code Playgroud)

3.如果我删除箭头函数,则渲染本身调用的函数

changeRoute (routeName) {
  console.log(routeName)
}
render() {
  return (
    <>
      <div onClick={this.changeRoute("page1")}>1</div>
      <div onClick={this.changeRoute("page2")}>2</div>
    </>
  )
}
Run Code Online (Sandbox Code Playgroud)

4.如果我使用内联绑定,那么它的性能也不是最好的

changeRoute (routeName) {
  console.log(routeName)
}
render() …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

ASP.NET Web.config转换在安装程序中不起作用

我正在使用Visual Studio .NET 2010中的ASP.NET项目并尝试使用Web安装项目创建MSI安装程序.我添加了项目的主要输出(似乎引入了相关的依赖项)和项目中的内容文件(它引入了Web.config和.svc文件).

问题是,不是应用XDT转换并使用Web.Release.config创建Web.config,它只是将Web.config,Web.Release.config和Web.Debug.config复制到安装程序中而不是做任何改造.

如何在创建安装程序之前应用Web.config转换?

asp.net web-config visual-studio-2010

11
推荐指数
2
解决办法
5005
查看次数

在 Android Studio 中选择项目模板后不显示语言选项

Android Studio 中的“新建项目”向导未显示“语言”选项。我想使用 Java,但它迫使我使用 Kotlin。

缺少语言选项。

我希望使用 Java 进行 Android 开发。如何制作 Java 项目?

java android android-studio

11
推荐指数
1
解决办法
9368
查看次数

当我尝试“将项目与 gradle 文件同步”时,会弹出一个警告

Warning: Mapping new ns schemas.android.com/repository/android/common/02 to old ns schemas.android.com/repository/android/common/01
Warning: Mapping new ns schemas.android.com/repository/android/generic/02 to old ns schemas.android.com/repository/android/generic/01
Warning: Mapping new ns schemas.android.com/sdk/android/repo/addon2/02 to old ns schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns /schemas.android.com/sdk/android/repo/repository2/02 to old ns schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns schemas.android.com/sdk/android/repo/sys-img2/02 to old ns schemas.android.com/sdk/android/repo/sys-img2/01
Run Code Online (Sandbox Code Playgroud)

c# android-studio

9
推荐指数
5
解决办法
6690
查看次数

如何从 jacoco 报告中正确排除和包含类、包和 jar 类、lib(离线仪器)

我正在使用 JaCoCo 代码覆盖率,但报告包括来自 jar、lib 的类。(离线检测,Maven)

我解决了离线配置的问题,因为“aspectj-maven-plugin”正在更改类文件,现在我也成功地排除了target/classes->之外的包src。感谢stackoverflow 中的这个答案。但是现在我从报告中的 jar、lib 获取类,我不知道如何排除。我在下面显示我的配置和示例

我也试过这个解决方案Exclude classes of jar files from jacoco coverage report但它对我不起作用。 <exclude>**/lib/*</exclude>

我的jacoco离线配置:

<properties>
  <jacoco.version>0.8.4</jacoco.version>
  <argLine></argLine>
</properties>


<dependency>
  <groupId>org.jacoco</groupId>
  <artifactId>org.jacoco.agent</artifactId>
  <classifier>runtime</classifier>
  <version>${jacoco.version}</version>
</dependency>

            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco.version}</version>
                <executions>
                    <execution>
                    <goals>
                        <goal>instrument</goal>
                        <goal>restore-instrumented-classes</goal>
                        <goal>report</goal>
                    </goals>
                    <configuration>
                        <!-- this configuration affects all goals -->
                        <excludes>
                            <exclude>*</exclude>
                            <exclude>com/company/rrPackage/**/*.class</exclude>
                            <exclude>org/**/*.class</exclude>                                               
                        </excludes>
                    </configuration>
                    </execution>
                </executions>
            </plugin>
Run Code Online (Sandbox Code Playgroud)

万无一失的插件

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.15</version>
                <configuration>
                    <testNGArtifactName>...</testNGArtifactName>
                    <suiteXmlFiles>
                        <suiteXmlFile>...</suiteXmlFile>
                    </suiteXmlFiles>
                    <skip>${skip.test}</skip>
                    <systemPropertyVariables>
                        <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>                       
                    </systemPropertyVariables> …
Run Code Online (Sandbox Code Playgroud)

java maven jacoco jacoco-maven-plugin

8
推荐指数
1
解决办法
2420
查看次数

相当于 Kotlin 协程流程中的 RxJava .toList()

我遇到一种情况,我需要观察 userId,然后使用这些 userId 来观察用户。userIds 或用户可能随时更改,我希望使发出的用户保持最新状态。这是我拥有的数据源的示例:


data class User(val name: String)

fun observeBestUserIds(): Flow<List<String>> {
    return flow {
        emit(listOf("abc", "def"))
        delay(500)
        emit(listOf("123", "234"))
    }
}

fun observeUserForId(userId: String): Flow<User> {
    return flow {
        emit(User("${userId}_name"))
        delay(2000)
        emit(User("${userId}_name_updated"))
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望排放量为:

[User(abc_name), User(def_name)], 然后

[User(123_name), User(234_name)], 然后

[User(123_name_updated), User(234_name_updated)]

我想我可以在 RxJava 中实现这一点,如下所示:

observeBestUserIds.concatMapSingle { ids ->
    Observable.fromIterable(ids)
        .concatMap { id ->
            observeUserForId(id)
        }
        .toList()
}
Run Code Online (Sandbox Code Playgroud)

我应该编写什么函数来生成发出该信号的流?

kotlin rx-java kotlin-coroutines kotlin-flow

8
推荐指数
1
解决办法
2738
查看次数

如何正确使用registerForActivityResult?获取“LifecycleOwners 必须在开始之前调用寄存器”

我使用registerForActivityResult就像:

package com.example.livedata

import android.Manifest
import android.app.Activity
import android.app.AlertDialog
import android.app.Dialog
import android.content.ActivityNotFoundException
import android.content.Intent
import android.graphics.Bitmap
import android.net.Uri
import android.os.Bundle
import android.provider.Settings
import android.view.View
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import com.example.livedata.databinding.ActivityAddBinding
import com.example.livedata.databinding.DialogCustomImageSelectionBinding


class AddActivity : AppCompatActivity(), View.OnClickListener {
    private lateinit var binding: ActivityAddBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityAddBinding.inflate(layoutInflater)
        setContentView(binding.root)
        setupActionBar()

        binding.photoAdd.setOnClickListener(this)
    }

    private fun setupActionBar() {
        setSupportActionBar(binding.toolbar)
        supportActionBar?.setDisplayHomeAsUpEnabled(true)
        binding.toolbar.setNavigationOnClickListener { onBackPressed() }
    }

    override fun onClick(v: View?) {
        if (v != …
Run Code Online (Sandbox Code Playgroud)

android android-activity kotlin startactivityforresult android-jetpack

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

如何在 HTML 页面中显示语法突出显示的 Python 代码?

是否可以在网页中显示语法突出显示的 python 代码?

我找到了这个:

<pre class="brush: python">
    # python code here
</pre>
Run Code Online (Sandbox Code Playgroud)

但是,它以黑色显示所有代码。我想import是橙色的,绳子是绿色的。

是否有可能做到这一点?

谢谢!

html css python

7
推荐指数
2
解决办法
1844
查看次数