我使用新的Android App Bundle格式构建我的项目。通过APK文件,我可以将APK下载到我的设备上,打开它,并立即安装应用程序。aab格式),我的Nexus 5X运行Android 8.1无法打开该文件。有没有什么方法可以像apk一样方便地在设备上安装aab ?


当前回答

如果你现在使用的是Maui, Visual Studio 2022只创建AAB文件;但是,您可以从命令行创建APK。

更改目录到你的项目所在的位置并运行这个:

dotnet publish -f:net6.0-android -c:Release /p:AndroidSigningKeyPass=blah

其他回答

直接从设备上安装aab,我找不到办法。

但是有一种方法可以通过命令行安装它,使用以下文档

根据“@Albert Vila Calvo”的评论,他指出要使用HomeBrew安装捆绑工具,请使用brew install bundletool

您现在可以从aab文件中安装extract apks并将其安装到设备中

通过下一个命令提取apk文件

Java -jar bundletool-all-0.3.3.jar build-apks——bundle=bundle。艺术展——输出=应用。apk, ks = my-release-key。密钥库——ks-key-alias=别名——ks-pass=pass:密码

参数:

——bundle -> Android bundle .aab文件 ——output ->生成的apk文件的目标和文件名 ——ks ->用于生成Android Bundle的Keystore文件 ——ks-key-alias -> keystore文件的别名 ——ks-pass ->别名文件的密码(请注意密码值前的“pass”前缀)

然后你会有一个扩展名为.apks的文件 现在你需要把它安装到一个设备上

Java -jar bundletool-all-0.6.0.jar install-apks——adb=/android-sdk/platform-tools/adb——apks=app.apks

参数:

——adb -> adb文件路径 ——apks ->需要安装apks文件

如果你想在不使用PLAY STORE的情况下安装应用程序包,你需要将你的构建变体改为在Android工作室“发布”。

如果你不能自己开发应用程序,但有一个发布包,那么请参考最流行的答案。

去Android Studio > Build >选择Build Variant..

一旦您这样做,您的构建配置可能开始显示错误。 这是因为您现在还需要在这个配置中提供签名细节(这引用了来自build.gradle的签名细节)。

您可以编辑配置,然后点击底部的Fix按钮,它会要求您填写签名详细信息。

或者你可以编辑build.gradle 确保您提供了buildTypes{}和signingconfigurations {}

android {
    signingConfigs {
        release {
            storeFile file('<Your PATH>\\keystore.jks')
            storePassword 'XXXXX
            keyAlias 'XXXXX'
            keyPassword 'xxxxx'
        }
        debug {
           storeFile file('<Your PATH>\\keystore.jks')
            storePassword 'XXXXX
            keyAlias 'XXXXX'
            keyPassword 'xxxxx'
        }
    }
    compileSdkVersion 32
    defaultConfig {
       ....
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug
        {
            signingConfig signingConfigs.debug
        }
    }
    ...


}

dependencies {

    ...
}

在Android Studio开始正确反射之前会有一到两分钟的延迟。否则,你可以做一个干净的重建,然后运行应用程序。

当你这次运行应用程序时,它将以发布模式安装在目标设备上。 你可能需要一种方法来识别已安装应用程序的构建变体。你可以在应用程序的某个地方显示构建名称和变体。或者如果你有一个按钮,只在调试模式下显示,你可以检查。

如果你有项目,你可以用android studio构建一个应用程序,或者直接将它推送到设备上,如果你运行调试或发布配置,设备连接并选择为目标,只要你在设备上启用开发模式adb,并在连接到你的机器时点击信任这台计算机。

但如果你想要在另一部手机上安装一款应用,你可以选择免费的在线服务,将play store链接转换为apk的直接下载。只需在设备上打开add debugging,并从终端打开adb install <path-to-apk>。

如果您有多个设备连接adb,您可以adb设备获得它们的标识符列表,adb install <path-to-apk> <device-id>也可以工作。或者,您可以根据自己的需要,利用adb在多台设备上同时做很多事情。甚至还有通过wifi进行adb的方法。

你需要从Android -sdk工具的adb来做这些事情,虽然安装了Android Studio,你会有一个本地安装,但它可能不在你的路径。然而,工作室终端可能有访问它,因为它将是你的IDE保存在首选项的sdk路径。如果没有,你可以下载一个独立的sdk,或者从它的首选项中找出哪个工作室正在使用

将adb从所述sdk的platform-tools目录中添加到您的路径(最好) 从您刚刚定位的绝对路径调用adb,并继续点击重新使用上一个命令,换出apk/设备 CD到adb目录,并将其与每个apks的完整路径一起使用(最简单)

如果你现在使用的是Maui, Visual Studio 2022只创建AAB文件;但是,您可以从命令行创建APK。

更改目录到你的项目所在的位置并运行这个:

dotnet publish -f:net6.0-android -c:Release /p:AndroidSigningKeyPass=blah

对于那些想要在所有android设备上运行的universal.apk的人:

brew install bundletool
bundletool build-apks --mode universal --bundle ./app-release.aab --output ./app.apks
mv app.apks app.zip
unzip app.zip

现在,你可以得到你的universal。apk