gpt4 book ai didi

linux - 转储失败,因为无法加载 Assets

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:16 24 4
gpt4 key购买 nike

我想在我的 .bashrc Ubuntu 18.04 上创建别名来构建和安装 APK,但我在我的终端中遇到了这样的问题

W/asset   (22684): Asset path ./app/build/outputs/apk/debug/app-debug.apk is neither a directory nor file (type=1).
ERROR: dump failed because assets could not be loaded

这是我在 .bashrc 文件中写的别名

## install apk to device
alias apkinstall="adb devices | tail -n +2 | cut -sf 1 | xargs -I X adb -s X install -r $1"

## build and install apk
alias buildAndInstallApk="./gradlew assembleDebug && apkinstall ./app/build/outputs/apk/debug/app-debug.apk"

## launch apk
alias launchDebugApk="adb shell monkey -p `aapt dump badging ./app/build/outputs/apk/debug/app-debug.apk | grep -e 'package: name' | cut -d \' -f 2` 1"

## build+install+launch apk
alias buildInstallLaunchDebugApk="buildAndInstallApk && launchDebugApk"

似乎每当我打开终端时它都会显示这些错误,因为我不是从那些路径所属的 android 项目目录打开终端。

知道如何解决这个问题吗?我们可以检查 .bashrc 中是否存在这些路径吗?

非常感谢!

最佳答案

您可以轻松检查路径是否作为别名或函数定义的一部分存在。

为方便起见,我已将您的别名转换为 shell 函数。

## build and install apk
buildAndInstallApk () {
local p=app/build/outputs/apk/debug/app-debug.apk
if [ -d "$p" ]; then
./gradlew assembleDebug &&
apkinstall "$p"
else
echo "No $p here" >&2
fi
}

顺便说一句,您的 launchDebugApk 定义包含一个反引号表达式,该表达式在定义别名时计算,而不是在您想要使用别名时计算。在别名周围使用单引号,或者将其也转换为函数(并且可能升级到 $(current millenium syntax) 而不是 `long since obsolecent backticks`) ;但这仍然不能解释为什么会出现错误。

从广义上讲,我基本上总是推荐函数而不是别名。语法更加通用,您可以避免各种不愉快的意外。

关于linux - 转储失败,因为无法加载 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53830664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com