小编Dán*_*Kis的帖子

android datastore-preferences:属性委托必须具有“getValue(Context, KProperty<*>)”方法

我正在编写一个jetpack compose android应用程序,我需要永久存储一些设置。

我决定使用androidx.datastore:datastore-preferences:1.0.0库,我已将其添加到我的类路径中。

根据https://developer.android.com/topic/libraries/architecture/datastore描述,我已将这行代码添加到顶层的 kotlin 文件中:

val Context.prefsDataStore:按preferencesDataStore(name =“settings”)的数据存储

但我得到一个编译错误:

e: ...SettingsViewModel.kt: (13, 50): Property delegate must have a 'getValue(Context, KProperty<*>)' method. None of the following functions is suitable: 
public abstract operator fun getValue(thisRef: Context, property: KProperty<*>): DataStore<Preferences> defined in kotlin.properties.ReadOnlyProperty
Run Code Online (Sandbox Code Playgroud)

如何使用数据存储首选项?

我的 build.gradle 文件:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'

}

apply plugin: 'dagger.hilt.android.plugin'
apply plugin: 'kotlinx-serialization'


android {
    compileSdk 31

    defaultConfig {
        applicationId "hu.homedashboard.mobile"
        minSdk 22
        targetSdk 31
        versionCode 1
        versionName …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose android-jetpack-datastore

34
推荐指数
1
解决办法
6040
查看次数

如何将 java.time.format.TemporalAccessor 转换为 java.util.Date

如何将 TemporalAccessor 转换为 java.util.Date?

TemporalAccessor accessor = functionReturnsTemporalAccessor()
Date date = Date.from(accessor)
Run Code Online (Sandbox Code Playgroud)

Date.from()不接受TemporalAccessor,有什么方法可以转换为java.util.Date吗?

java date temporal java.util.date datetime-conversion

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

如何更改 docker swarm 入口网络的 IP 地址范围

我使用 docker swarm 1.13.1,当我初始化 docker swarm 或加入 docker swarm 时,它有时会在“172.19.0.0/16”子网中创建一个 docker_gwbridge 网络。

但是我的计算机子网在相同的范围内,所以当它初始化这个网络时,docker swarm 主机变得无法从我的计算机访问。

所以我的问题是:如何更改现有 docker 网络的子网。

> docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
ac1100164960        bridge              bridge              local
3838ae360f35        docker_gwbridge     bridge              local
f9a77266aa15        host                host                local
rgqnm19zbasv        ingress             overlay             swarm
04c1c6b3ade7        none                null                local
Run Code Online (Sandbox Code Playgroud)

检查网络:

> docker network inspect 3838ae360f35
[
    {
        "Name": "docker_gwbridge",
        "Id": "3838ae360f3585f2cda8a43a939643cdd74c0db9bfb7f4f18b3b80ae07b3b9db",
        "Created": "2017-03-22T13:26:50.352865644+01:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.19.0.0/16",
                    "Gateway": "172.19.0.1" …
Run Code Online (Sandbox Code Playgroud)

networking docker docker-swarm

6
推荐指数
1
解决办法
4842
查看次数

如何在 Jenkins 管道警告插件中显示 gradle java 编译警告

我有一个由 Jenkinsfile 定义的构建作业,我想运行 warningsPublisher Jenkis 插件来显示 gradle 构建警告的输出(包括容易出错的输出)。

有警告发布者插件 DSL 的文档吗?如何将 gradle 构建输出警告添加到此插件?

node {

  stage('Build/Test artifacts') {
    sh "./gradlew clean build"
  }

  stage('Code quality') {
    step([$class: 'WarningsPublisher', canComputeNew: false, canResolveRelativePaths: false, defaultEncoding: '', excludePattern: '', healthy: '', includePattern: '', messagesPattern: '', parserConfigurations: [[parserName: 'Java Compiler', pattern: '???.txt']], unHealthy: ''])
  }
}
Run Code Online (Sandbox Code Playgroud)

javac compiler-warnings gradle jenkins-plugins jenkins-pipeline

5
推荐指数
0
解决办法
637
查看次数

rxjs:Observable.of(...).delay不是函数

我想通过以下方式在typescript中创建一个延迟的observable:

import 'rxjs/add/observable/of';

...

const o = Observable.of(values).delay(10000);
o.subscribe((v) => { alert(v); });
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

"Observable_1.Observable.of(...).delay is not a function"
Run Code Online (Sandbox Code Playgroud)

typescript rxjs5 angular-cli

5
推荐指数
1
解决办法
4291
查看次数

npm install 不使用 .npmrc 注册表设置

我在代理后面工作,因此我在 nexus 中使用本地 npm 注册表。我有一个 .npmrc 配置,其中包含 jenkins 中的注册表设置:

/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodejs-default/bin/node "/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodejs-default/bin/npm" config get registry
https://nexus/repository/npm-all/
Run Code Online (Sandbox Code Playgroud)

当我想运行 npm install 时,出现以下错误:

/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodejs-default/bin/node "/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodejs-default/bin/npm" "install"
npm ERR! Error while executing:
npm ERR! /usr/bin/git ls-remote -h -t git://github.com/ariya/esprima.git
npm ERR!
npm ERR! fatal: unable to connect to github.com:
npm ERR! github.com[0: 192.30.253.113]: errno=Connection refused
npm ERR! github.com[1: 192.30.253.112]: errno=Connection refused
npm ERR!
npm ERR!
npm ERR! exited with error code: 128

npm ERR! A complete log of this run can be found in:
npm …
Run Code Online (Sandbox Code Playgroud)

npm jenkins

5
推荐指数
0
解决办法
1065
查看次数

如何使用 Spring Boot Security 修复 Spring Boot Webflux 应用程序中的“名称为 requestMappingHandlerAdapter 的无效 bean 定义”错误

我想将 spring security 与 spring boot webflux 结合使用,但启动应用程序时出现以下错误:

org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'requestMappingHandlerAdapter' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Cannot register bean definition [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration; factoryMethodName=requestMappingHandlerAdapter; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]] for bean 'requestMappingHandlerAdapter': There is already [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.web.reactive.config.DelegatingWebFluxConfiguration; factoryMethodName=requestMappingHandlerAdapter; initMethodName=null; destroyMethodName=(inferred); defined in org.springframework.web.reactive.config.DelegatingWebFluxConfiguration] bound.
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.registerBeanDefinition(DefaultListableBeanFactory.java:897) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:274) ~[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:141) ~[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE] …
Run Code Online (Sandbox Code Playgroud)

spring spring-security kotlin spring-boot spring-webflux

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

Kotlin:具有TypeReference &lt;HashMap &lt;String,String &gt;&gt;的objectmapper.readValue()无法推断参数

我想使用以下代码反序列化一个json以使用objectmapper映射:

fun onMessage(topic: String, message: MqttMessage) {
   val typeRef = object : TypeReference<HashMap<String, String>>() {}
   val msg = objectMapper.readValue(message.payload, typeRef)
   ...
}
Run Code Online (Sandbox Code Playgroud)

编译器表示不会推断参数T in fun <T : Any!> readValue (src: ByteArray!, valueTypeRef: (TypeReference<Any!>..TypeReference<*>?)): T!

如果用我的自定义类扩展HashMap,是否有解决此问题的方法:

class MyHashMap : HashMap<String, String>()
Run Code Online (Sandbox Code Playgroud)

...

fun onMessage(topic: String, message: MqttMessage) {
   val msg = objectMapper.readValue(message.payload, MyHashMap::class.java)
   ...
}
Run Code Online (Sandbox Code Playgroud)

jackson kotlin

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

尝试在空对象引用上调用虚拟方法“androidx.navigation.NavGraph androidx.navigation.NavDestination.getParent()”

我创建了一个 Android 应用程序,并从 Gallery 添加了“导航抽屉活动”,我删除并重命名了菜单项。当我单击抽屉活动中的任何菜单项时启动应用程序后,我收到以下错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'androidx.navigation.NavGraph androidx.navigation.NavDestination.getParent()' on a null object reference
        at androidx.navigation.ui.NavigationUI.onNavDestinationSelected(NavigationUI.java:78)
        at androidx.navigation.ui.NavigationUI$3.onNavigationItemSelected(NavigationUI.java:453)
        at com.google.android.material.navigation.NavigationView$1.onMenuItemSelected(NavigationView.java:215)
        at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:834)
        at androidx.appcompat.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:158)
        at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:985)
        at com.google.android.material.internal.NavigationMenuPresenter$1.onClick(NavigationMenuPresenter.java:416)
        at android.view.View.performClick(View.java:7448)
        at android.view.View.performClickInternal(View.java:7425)
        at android.view.View.access$3600(View.java:810)
        at android.view.View$PerformClick.run(View.java:28305)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Run Code Online (Sandbox Code Playgroud)

主要活动代码:

class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {

    private lateinit var appBarConfiguration: AppBarConfiguration

    private lateinit var navView: NavigationView

    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        initView()
    } …
Run Code Online (Sandbox Code Playgroud)

android android-navigation androidx

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

Sonarqube说:可能会抛出"NullPointerException"; "getFolderPath()"可以返回null

我从sonarqube得到了以下错误

可能会抛出"NullPointerException"; "getFolderPath()"可以返回null.

对于以下行:

if (upstreamContent.getFolderPath() != null && !upstreamContent.getFolderPath().isEmpty()) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

其中upstreamContent可能不为null.

如何在不关闭规则的情况下在sonarqube中修复它?

更新:

有人让我展示UpstreamContent的来源

public class UpstreamContent {

    @Nullable
    private String folderPath;

    ...

    @CheckForNull
    @Nullable
    public String getFolderPath() {
        return folderPath;
    }

    public void setFolderPath(String folderPath) {
        this.folderPath = folderPath;
    }
}
Run Code Online (Sandbox Code Playgroud)

java sonarqube

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