小编ikn*_*now的帖子

尝试获取 LiveData 时,数据库查询抛出 KotlinNullPointerException

我正在尝试在 kotlin/android 中创建房间数据库,但是KotlinNullPointerException当我尝试从数据库中获取 LiveData 时我得到了。我有两个表CarRefueling从一个片段我可以Car毫无问题地获取数据,但在第二个片段中,我在尝试获取RefuelingLiveData 时出错。我找不到这两个片段/DAO 之间的任何区别。下面是一个简化的代码。

加油数据类:

@Entity(tableName = "refueling_table", foreignKeys = [ForeignKey(entity = Car::class,
    parentColumns = arrayOf("carID"),
    childColumns = arrayOf("carID"),
    onDelete = ForeignKey.CASCADE)]
)
data class Refueling(
    @PrimaryKey(autoGenerate = true)
    val refuelingID: Long = 0L,

    @ColumnInfo(name = "carID")
    val carID: Long = 0L,
)
Run Code Online (Sandbox Code Playgroud)

加油DAO:

@Dao
interface RefuelingDAO
{
    @Query("SELECT * FROM refueling_table ORDER BY refuelingID DESC")
    fun getAll(): LiveData<List<Refueling>>
}
Run Code Online (Sandbox Code Playgroud)

应用数据库:

@Database(entities = [Car::class, Refueling::class], version = …
Run Code Online (Sandbox Code Playgroud)

sqlite android dao kotlin android-room

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

在 UserControl 中绑定 ToolTip

ToolTip我尝试以这种方式绑定文本UserControl

<Grid.ToolTip>
    <TextBlock
        Text="{
            Binding Path=InfoTT,  
            RelativeSource={
                RelativeSource Mode=FindAncestor, 
                AncestorType={x:Type UserControl}
            }
        }" />
</Grid.ToolTip>
Run Code Online (Sandbox Code Playgroud)

它不起作用,Tooltip是空的,在日志中,我看到:

System.Windows.Data 错误:4:无法找到引用“RelativeSource FindAncestor,AncestorType='System.Windows.Controls.UserControl”,AncestorLevel='1'' 进行绑定的源。BindingExpression:Path=InfoTT; 数据项=空;目标元素是“TextBlock”(名称=“”);目标属性是“文本”(类型“字符串”)*

但是当我这样做时:

<Grid
    ToolTip="{
        Binding Path=InfoTT,  
        RelativeSource={
            RelativeSource Mode=FindAncestor, 
            AncestorType={x:Type UserControl}
        }
    }">
</Grid>
Run Code Online (Sandbox Code Playgroud)

有效。谁能解释为什么第一种方法不起作用?

data-binding wpf xaml

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

Julia 将符号转换为字符串

如何在 Julia 中将符号转换为字符串?以下不起作用:

String(:A)
convert(String,:A)
Run Code Online (Sandbox Code Playgroud)

他们确实在 Julia 0.4 版中工作。

string symbols type-conversion julia

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

ActivityResultContracts.TakePicture 返回“没有这样的文件或目录”

在 Fragment 中,我尝试从相机捕获图像并使用它。我想这样做,ActivityResultContracts.TakePicture()但是当我在捕获后尝试使用此图像时,我得到:

W/ImageView: Unable to open content: content://com.myniprojects.pixagram/my_images/default_image.jpg
    java.io.FileNotFoundException: open failed: ENOENT (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

我看过这个问题ActivityResultContracts.TakePicture()但我不知道我做错了什么。这是我所做的一切:

此停靠到清单之后,我添加了:

<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="com.myniprojects.pixagram"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</provider>
Run Code Online (Sandbox Code Playgroud)

res/xml我创建的文件中file_paths

<paths>
    <files-path
        name="my_images"
        path="images/" />
</paths>
Run Code Online (Sandbox Code Playgroud)

在片段中:

W/ImageView: Unable to open content: content://com.myniprojects.pixagram/my_images/default_image.jpg
    java.io.FileNotFoundException: open failed: ENOENT (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

如果它有帮助,这是完整的错误日志

2021-01-16 16:15:38.871 9433-9433/com.myniprojects.pixagram W/ImageView: Unable to open content: content://com.myniprojects.pixagram/my_images/default_image.jpg
    java.io.FileNotFoundException: open failed: ENOENT (No such file …
Run Code Online (Sandbox Code Playgroud)

android kotlin

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