问题列表 - 第317959页

Android“附近共享”崩溃(是 com.android.bluetooth 的本机崩溃)

我刚刚在我的应用程序上运行了预启动测试,报告显示 com.android.bluetooth 发生本机崩溃。我以前从未见过这种情况,也没有太多阅读崩溃日志的经验。

这是日志:

backtrace:
  #00  pc 0x0000000000051994  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
  #01  pc 0x00000000006d27f8  /apex/com.android.art/lib64/libart.so (art::Runtime::Abort(char const*)+108)
  #02  pc 0x0000000000016ea8  /apex/com.android.art/lib64/libbase.so (android::base::SetAborter(std::__1::function<void (char const*)>&&)::$_3::__invoke(char const*)+80)
  #03  pc 0x0000000000009de0  /system/lib64/liblog.so (__android_log_assert+292)
  #04  pc 0x0000000000a22f14  /apex/com.android.btservices/lib64/libbluetooth_jni.so (base::internal::Invoker<base::internal::BindState<bluetooth::hal::HciHalHidl::Start()::'lambda'()>, void ()>::RunOnce(base::internal::BindStateBase*)+32)
  #05  pc 0x0000000000a0ffd8  /apex/com.android.btservices/lib64/libbluetooth_jni.so (bluetooth::os::Alarm::on_fire()+108)
  #06  pc 0x0000000000a115b8  /apex/com.android.btservices/lib64/libbluetooth_jni.so (bluetooth::os::Reactor::Run()+584)
  #07  pc 0x0000000000a122b4  /apex/com.android.btservices/lib64/libbluetooth_jni.so (bluetooth::os::Thread::run(bluetooth::os::Thread::Priority)+176)
  #08  pc 0x0000000000a1243c  /apex/com.android.btservices/lib64/libbluetooth_jni.so (void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (bluetooth::os::Thread::*)(bluetooth::os::Thread::Priority), bluetooth::os::Thread*, bluetooth::os::Thread::Priority> >(void*)+68)
  #09  pc 0x00000000000b63b0  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208)
  #10  pc 0x00000000000530b8  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

Google Pixel 2 (Arm) (virtual)
1080x1920 …
Run Code Online (Sandbox Code Playgroud)

android bluetooth google-nearby prelaunch

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

在 Go 中创建 []string 类型的 var

首先说我对 Go 语言相当陌生。

我的程序采用 CSV 并将每一行作为 [] 字符串读取,并将它们全部添加到切片中。程序的另一部分应该向包含新信息的切片添加另一个条目,但我不知道如何将新条目声明为类型 []string。如果它尝试使用结构、代码、[]Customer 类型与 []string 类型不兼容。如果我在开始时将 []string 切片转换为 []Customer 类型,我将失去能够在每个条目的某些部分使用 time.Parse 的功能。我无法将新条目声明为类型 []string。有什么办法可以做到这一点吗?用于读取 CSV 并添加到 []string 类型的切片的代码。

var customerInfo [][]string

for {
    record, err := reader.Read()
    if err == io.EOF {
        break
    }
    if err != nil {
        panic(err)
    }
    customerInfo = append(customerInfo, record)
}
Run Code Online (Sandbox Code Playgroud)

time.Parse 功能和更新 [] 字符串的一列的代码。

today := time.Now()
for i, e := range customerInfo {
    if i > 0 {
        lastOilChange, err := time.Parse("2006-01-02", e[4])
        if err != nil { …
Run Code Online (Sandbox Code Playgroud)

csv go

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

我可以将 Item=(key, val) 的迭代器拆分为单独的 key iter 和 val iter 而不进行收集或克隆吗?

我有一个如下所示的函数:

    fn set_many(&mut self, key_vals: impl IntoIterator<Item = (Index, T)>)
    {
        let (keys, vals): (Vec<_>, Vec<_>) = key_vals.into_iter().unzip();

        let mut viter = vals.into_iter();
        let mut iter_mut = self.many_iter_mut(keys);

        while let Some(mut setter) = iter_mut.next() {
            setter.set(viter.next().unwrap())
        }
    }

fn main() {
    let mut v = SimpleVec(vec![100, 200, 300, 400, 500]);
    
    v.set_many([(1, 20), (2, 30), (4, 50)]);
    
    println!("modified vec: {:?}", v);
}
Run Code Online (Sandbox Code Playgroud)

输出:

modified vec: SimpleVec([100, 20, 30, 400, 50])
Run Code Online (Sandbox Code Playgroud)

这是可行的,但有必要调用unzip()将键和值收集到单独的 Vec 中。对于大型集合来说,这是不可取的。

更改函数签名并接受单独的 key 和 val iter 参数将起作用。不幸的是,这个函数是公共 …

iterator rust

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

如果没有 constexpr std::uninitialized_copy,std::vector 如何能够成为 constexpr?

我正在实现我自己的容器,并且我试图使其尽可能对 constexpr 友好。

\n

在这个过程中,我发现这std::uninitialized_copy不是 constexpr,因此我无法使用标准算法实现复制分配。

\n

然而, constexprstd::vector 是否友好:

\n
constexpr auto f() {\n    std::vector<int> v = {1, 2, 3};\n    return v.size();\n}\n\nstatic_assert(f() == 3);\n
Run Code Online (Sandbox Code Playgroud)\n

当我替换为我自己的容器时,我无法实现此目的std::vector。\n我收到错误:

\n
... error: call to non-\xe2\x80\x98constexpr\xe2\x80\x99 function \xe2\x80\x98_ForwardIterator std::uninitialized_copy(_InputIterator, ...\n
Run Code Online (Sandbox Code Playgroud)\n

我想知道标准库(例如 stdlib)如何实现这一点。\n它是否使用uninitialized_copyconstexpr 的秘密实现?\nconstexpr uninitalized_copy 是否可以实现?

\n

我想挑战在于拥有constexpr addressof和constexpr construct_at。\n是否有一个我可以回退的实现?

\n

c++ initialization std constexpr

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

如何在 Flutter 中的 SliverAppBar 上叠加可滚动的 Sliver?

我有一个CustomScrollView和SliverAppBar一些条子。我想在上面覆盖一些图形,SliverAppBar并让它们与列表的其余部分一起滚动。

这是我一直在使用的代码:

import 'package:flutter/material.dart';

void main() async {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: SliverTest(),
    );
  }
}

class SliverTest extends StatefulWidget {
  const SliverTest({super.key});

  @override
  State<SliverTest> createState() => _SliverTestState();
}

class _SliverTestState extends State<SliverTest> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: CustomScrollView(
          slivers: [
            SliverAppBar(
              expandedHeight: 350.0,
              floating: false,
              pinned: true,
              flexibleSpace: FlexibleSpaceBar(
                background: Container(
                  color: …
Run Code Online (Sandbox Code Playgroud)

scroll dart flutter flutter-sliver flutter-sliverappbar

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

Polars 自动缓存机制如何在 LazyFrames 上工作?

正如这里所述,Polars 为 LazyFrames 引入了自动缓存机制,该机制在逻辑计划中多次出现,因此用户不必主动执行缓存。
然而,在尝试检查他们的新机制时,我遇到了自动缓存未最佳执行的情况:

没有显式缓存:

import polars as pl

df1 = pl.DataFrame({'id': [0,5,6]}).lazy()
df2 = pl.DataFrame({'id': [0,8,6]}).lazy()
df3 = pl.DataFrame({'id': [7,8,6]}).lazy()

df4 = df1.join(df2, on='id')
print(pl.concat([df4.join(df3, on='id'), df1,
                 df4]).explain())
Run Code Online (Sandbox Code Playgroud)

我们得到了逻辑计划:

UNION
  PLAN 0:
    INNER JOIN:
    LEFT PLAN ON: [col("id")]
      INNER JOIN:
      LEFT PLAN ON: [col("id")]
        CACHE[id: a4bcf9591fefc837, count: 3]
          DF ["id"]; PROJECT 1/1 COLUMNS; SELECTION: "None"
      RIGHT PLAN ON: [col("id")]
        CACHE[id: 8cee8e3a6f454983, count: 1]
          DF ["id"]; PROJECT 1/1 COLUMNS; SELECTION: "None"
      END INNER JOIN
    RIGHT PLAN ON: …
Run Code Online (Sandbox Code Playgroud)

python rust-polars python-polars

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

如何在 10^10 个元素的数组中查找第 10^5 个最大元素?

使用种子为 4020 的 PRNG(前 3 个数字为 -2123524894 961034805 1071375651)生成 10^10 整数。打印生成的数字中第 10^5 大的元素。

当然,如果问题规模较小,我本来可以点击一下解决它,但我不知道如何解决它。一种方法是使用堆方法(BAD IDEA)来使用中位数,然后尝试将输入分成块并尝试在其中找到它,但这些方法都不起作用。我认为我陷入了错误的事情,这个问题的解决方案不可能需要超级计算机来计算,所以我的想法当然是错误的,你能帮我指出正确的方向,告诉我可以做什么来解决这个问题?

c median large-data

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

防止特征函数被其他结构实现

我只是构建了一个Bar具有 2 个函数的特征(alpha()带有实现和beta()仅带有接口),并且我希望实现的结构Bar只实现beta(),而不是实现自己的alpha()。

有什么方法可以阻止另一个结构实现自己的结构alpha()吗?

trait Bar {
    fn alpha(&self) {
        println!("you should never implement this function on your own.");
    }

    fn beta(&self);
}

struct Foo {}


impl Bar for Foo {
    fn alpha(&self) {
        println!("how do I trigger an error here when a struct implement it's own alpha()?");
    }

    fn beta(&self) {
        println!("implement beta() for Foo");
    }
}
Run Code Online (Sandbox Code Playgroud)

traits rust

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

当“JToken?”为空时?

使用以下方法迭代jsonIm Newtonsoft.Json:

var jObject = JObject.Parse(sr.ReadToEnd());
foreach (KeyValuePair<string, JToken?> superior in jObject) {
...
}
Run Code Online (Sandbox Code Playgroud)

正如您在上面看到的,JObject 实现了IEnumerable<KeyValueString<string, JToken?>>. 但我找不到JToken枚举中为空的情况。

我尝试过这个:

{

}
Run Code Online (Sandbox Code Playgroud)
{
   "A": { }
}
Run Code Online (Sandbox Code Playgroud)
{
   "A": ""
}
Run Code Online (Sandbox Code Playgroud)
{
    "A": null
}
Run Code Online (Sandbox Code Playgroud)

...并且它始终不为空。那么为什么要使用枚举器JToken?呢?

c# json json.net

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

SQL Server 没有使用我的索引。如何使用我的索引?

我的客户正在使用表格来创建每月的财务报告。我对其进行了优化,因为大约有 40 个聚合列,并且它运行了大约 40 分钟才能看到输出。我创建了一个将聚合值存储到表中的流程,现在,在选择列时,聚合已经计算完毕,并且运行时间为 3-4 分钟。现在我正在尝试创建一个索引,但由于数据量很大(我猜)SQL Server 没有使用它。查询非常简单

Select * 
From Table
Where year(data_doc) = 2023
and month(data_doc) = 10
Run Code Online (Sandbox Code Playgroud)

我仅为“data_doc”列创建了非聚集索引,但 SQL Server 仍然扫描整个表。我更改了索引并包含了构成主键的列,如下所示:

CREATE INDEX ix_Data_Doc ON Tabel(data_doc,OperationDetail_Id, OperationTraceOut_Id,OperationTraceIn_Id).
Run Code Online (Sandbox Code Playgroud)

重要的是,客户端正在使用视图,并且“select * from view”返回大约 5700 万行,总共有 57 列。每年和每月使用过滤器,它会返回大约 2/3 百万行。列“data_doc”数据类型为“datetime”。

如何创建索引来优化流程?

sql t-sql sql-server indexing

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