Дамп не выполнен, потому что активы не могут быть загружены - PullRequest
0 голосов
/ 18 декабря 2018

Я хотел бы создать псевдоним на моем .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?

большое спасибо!

1 Ответ

0 голосов
/ 18 декабря 2018

Вы можете легко проверить, что путь существует как часть определения псевдонима или функции.

Для удобства я преобразовал ваш псевдоним в функцию оболочки.

## 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 obsolescent backticks`);но это все еще не объясняет, почему вы получаете ошибку.

В общем, я рекомендую функции над псевдонимами в основном всегда.Синтаксис намного более универсален, и вы избежите всевозможных неприятных сюрпризов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...