gpt4 book ai didi

android - 无法在 Android Studio 之外安装基于 CLI 构建的应用程序 – "failed to delete"错误/base.apk 代码缺失

转载 作者:行者123 更新时间:2023-12-03 17:03:38 29 4
gpt4 key购买 nike

我对 Android 原生开发还很陌生,最近尝试在没有 Android Studio 的情况下直接从 CLI 构建(真的不喜欢 IDE 并且发现 Gradle 过于复杂,虽然我还不能让我的工具链运行......)

使用来自网络的指导,尤其是 this ,我有一个非常基本的应用程序,它成功构建到一个签名和对齐的 APK(据我所知)。我正在使用 Java 1.8 针对平台 14 进行构建,并且在更改此配置时没有观察到任何变化。

我已经把应用程序源 on GitHub供这个问题引用。这是一项具有一种布局的 Activity 。

说到adb install (或从设备手动安装),安装总是失败并显示 INSTALL_FAILED_INVALID_APK ... Package /data/app/net.ilmiont.helloworld-...==/base.apk code is missing (... 是一些外观上的长 ID)。

日志猫

运行adb logcat在安装尝试期间,我得到了这个:
11-16 10:34:52.729 24742 7402 I Finsky : [9791] com.google.android.finsky.verifier.impl.ea.a(82): Skipping verification. Disabled by user setting
11-16 10:34:52.729 24742 7402 I Finsky : [9791] com.google.android.finsky.verifier.impl.ea.a(43): Skipping anti malware verification due to pre-check failure
11-16 10:34:52.730 24742 24742 I Finsky : [2] com.google.android.finsky.verifier.impl.fs.c(164): Verifying id=132, result=1
11-16 10:34:52.735 24742 24742 I Finsky : [2] com.google.android.finsky.verifier.impl.fs.c(177): Verification complete: id=132, package_name=net.ilmiont.helloworld
11-16 10:34:52.752 1856 27782 E : Couldn't opendir /data/data/net.ilmiont.helloworld: No such file or directory
11-16 10:34:52.753 1856 27782 E installd: Failed to delete /data/data/net.ilmiont.helloworld: No such file or directory
11-16 10:34:52.753 1856 27782 E : Couldn't opendir /data/user_de/0/net.ilmiont.helloworld: No such file or directory
11-16 10:34:52.753 1856 27782 E installd: Failed to delete /data/user_de/0/net.ilmiont.helloworld: No such file or directory
11-16 10:34:52.754 2198 2398 W PackageManager: com.android.server.pm.Installer$InstallerException: android.os.ServiceSpecificException: Failed to delete /data/user_de/0/net.ilmiont.helloworld (code 2)
11-16 10:34:52.756 2198 2398 W PackageManager: Package couldn't be installed in /data/app/net.ilmiont.helloworld-pbDVHiVe6mEghhiOqRUNjg==
11-16 10:34:52.756 2198 2398 W PackageManager: com.android.server.pm.PackageManagerException: Package /data/app/net.ilmiont.helloworld-pbDVHiVe6mEghhiOqRUNjg==/base.apk code is missing

我不明白为什么它在刚刚安装应用程序时尝试打开/删除这些目录(并且从未成功安装)---我对 Android 内部结构知之甚少,但从该跟踪来看,它确实看起来像删除是问题所在。

我已经多次查看我的来源,但看不到我错过了什么。 list 看起来不错,布局看起来不错,Java 是两行。那么我错过了什么?这一定是非常明显的事情。

设备

这可能是相关的,所以这里是所有细节。

运行无根 Android 8.1 的诺基亚 6(原版)。

我打开了 Android Studio,创建了默认的样板应用程序并点击“运行”,它成功构建和部署,所以很明显我的应用程序/构建工具链有问题导致这个中断,我不知道在哪里看。

构建脚本(摘录,它会构建但不会部署)
aapt package -v -f -m -J $PROJECT_SOURCE -M $ANDROID_MANIFEST -S $ANDROID_RESOURCES -I $ANDROID_SDK/platforms/android-$ANDROID_API/android.jar;javac -d $JAVA_COMPILE_DESTINATION -source $JAVA_VERSION -target $JAVA_VERSION_TARGET -classpath "$PROJECT_SOURCE$JAVA_CLASSPATH_LIBS" -bootclasspath $ANDROID_SDK/platforms/android-$ANDROID_API/android.jar $PROJECT_SOURCE/$PROJECT_PACKAGE_SOURCE/*.java;dx --dex --output=$DX_COMPILE_DESTINATION $JAVA_COMPILE_DESTINATION;aapt package -f -m -F $APP_APK_UNALIGNED -M $ANDROID_MANIFEST -S $ANDROID_RESOURCES -I $ANDROID_SDK/platforms/android-$ANDROID_API/android.jar;aapt add $APP_APK_UNALIGNED $DX_COMPILE_DESTINATION;zipalign -f 4 $APP_APK_UNALIGNED $APP_APK;apksigner sign --ks /home/jh_walker/.keystore $APP_APK;
keystore
keytool -genkeypair -validity 365 -keystore $KEYSTORE -alias $KEYSTORE_ALIAS -sigalg SHA1withDSA -keyalg DSA -keysize 1024
我试过的

  • Java 1.7/1.8
  • 针对不同 Android 平台编译 (21/28)
  • 包括附加 Assets (最初没有图标)
  • 设置use-sdk在 list 中(无影响)

  • 我错过了什么?

    最佳答案

    我到了那里。
    aapt inspect app.apk
    我立即在 APK 中发现了 ./bin/classes.dex ,而其他文件都没有 ./字首。

    深入挖掘,我在构建脚本中看到我正在将 DEX 编译为 ./bin/classes.dex ,然后将该路径添加到我的 APK。但似乎 aapt 不喜欢这条路径。 (尽管它对我运行它的位置完全有效),并且它没有正确添加文件 --- 似乎只是一些空的 ./bin/classes.dex它弥补了。

    (是的,这是一个可悲的解释,我稍后会适当调查!)

    无论如何,您似乎必须从当前目录添加:classes.dex .也许这对于更熟悉这些工具的人来说是显而易见的。

    反正,
    cp ./bin/classes.dex . && aapt add app.apk.unaligned classes.dex有效,但 aapt add app.apk.unaligned ./bin/classes.dex才不是 。

    关于android - 无法在 Android Studio 之外安装基于 CLI 构建的应用程序 – "failed to delete"错误/base.apk 代码缺失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53336514/

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