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


当前回答

如果你想在不使用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开始正确反射之前会有一到两分钟的延迟。否则,你可以做一个干净的重建,然后运行应用程序。

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

其他回答

使用(在Linux上): cd安卓 。/ gradlew assemblyRelease | assemblyDebug

为每个用例生成一个无符号APK(用于调试或测试)

注意:在Windows上,将gradle可执行文件替换为gradlew.bat

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

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

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

简短的回答:

不直接。

再答:

Android应用程序捆绑是谷歌Play Store上应用程序的默认发布格式。但Android设备需要.apk文件来安装应用程序。

Play Store或你正在安装的任何其他源将从包中提取apks,签名每个apks,然后将它们安装到特定的目标设备。

从。aab到。apk的转换是通过bundletool完成的。

你可以使用内部应用程序共享将应用程序的可调试构建上传到Play Store,并与测试人员共享。

如果您想从您的aab安装apk到您的设备进行测试,那么您需要在连接的设备上运行它之前编辑配置。

进入编辑配置 选择Deploy下拉菜单,将“Default apk”改为“apk from app bundle”。 应用更改,然后在连接的设备上运行它。进行此更改后,构建时间将增加。

这将直接在从aab连接的设备上安装apk。

MAC:

brew install bundletool
bundletool build-apks --bundle=app-release.aab --output=app-release.apks
bundletool install-apks --apks=app-release.apks