当前位置: 首页 > 知识库问答 >
问题:

如何仅从AAR导入选定的本机库ABIs?

艾英范
2023-03-14

我有一个不寻常的问题--我的Android应用程序包含原生库,而我为armeabi-v7a和x86构建原生库。然而,现在我需要将一个第三方库集成到我的应用程序中,该应用程序还包含本机库(第三方库是我通过Maven从我的build.gradle中包含的Crashlytics)。问题是第三方库的AAR提供了所有ARHiteTecure(armeabi、arm64-v8a、armeabi-v7a、mips、mips64、x86和x86_64),而我的应用程序只支持armeabi-v7a和x86(arm64-v8a计划在不久的将来),所以当最终的apk构建时,它包含了第三方库的所有ABI和我的原生代码的x86和armeabi-v7a的ABI。这导致我的应用程序在arm64设备(如Galaxy S6)上启动时崩溃。

我的问题是:是否可能只包括从第三方AAR中选择的ABI?

请注意,我知道APK分裂,但这只解决了我的问题部分,即它只工作,如果我分发我的应用程序通过Play Store。虽然Play Store支持beta测试分发,但更新的APK的传播速度相当慢,所以在将更新推送到app的PlayStore beta渠道之前,我们通过crashlytics的beta分发系统来推送更新,这要快得多。问题是Crashlytics的分配系统不支持APK分裂(或者我错了?)。因此,我实际上需要构建一个“通用”APK,它将只包含选定的ABI。如何实现?

虽然我甚至对Crashlytics的特定答案也会满意(例如,如何通过他们的beta渠道分发APK片段),但对于构建仅包含选定ABI的“通用”APK的解决方案,我会更满意,因为在我们公司,我们还将SDK作为AAR档案提供给我们的客户,这些档案仅包含受支持的体系结构,并且我们希望指导他们在将我们的SDK与其他支持不同ABI的SDK集成时如何处理情况。

我正在使用最新的稳定的Android studio(1.2.1.1),Gradle2.4和Android gradle插件版本1.2.3。

共有1个答案

叶谦
2023-03-14
packagingOptions {
    exclude 'lib/arm64-v8a/libcrashlytics-envelope.so'
    exclude 'lib/arm64-v8a/libcrashlytics.so'
    exclude 'lib/armeabi/libcrashlytics-envelope.so'
    exclude 'lib/armeabi/libcrashlytics.so'
    exclude 'lib/mips64/libcrashlytics-envelope.so'
    exclude 'lib/mips64/libcrashlytics.so'
    exclude 'lib/mips/libcrashlytics-envelope.so'
    exclude 'lib/mips/libcrashlytics.so'
    exclude 'lib/x86_64/libcrashlytics-envelope.so'
    exclude 'lib/x86_64/libcrashlytics.so'
}
 类似资料:
  • 我遵循了关于创建Android库的官方指南,但有些东西似乎不太适合我。 我的项目由两个模块组成。一个名为“app”的app模块和一个名为“BFSDK”的库模块。在我的应用程序的文件中,我包含了库,如下所示: 然后在我的库模块中,my在第一行指定它是库: 在Project窗口中选择库模块,然后单击Build>Build APK 这将构建AAR文件。然而: 当我点击这个并等待整个构建过程完成时,我在任

  • 我对Android Studio不是很有经验,我尝试过无数种方法来解决这个问题,但都没有成功。 目标:将文件作为库导入到Android Studio应用程序中。 问题: null null 在所有这些步骤之后,我尝试同步gradle,但它仍然不识别.aar。以下是错误: 我尝试将.aar文件放入libs文件夹,并将build.gradle(Project:MyApplication)中的这个函数修

  • .aar格式的包是Android独有的第三方库(Android Library), 包含了可重用的java文件和Android组件.我们可以通过新建module创建自己的Android Library,然后打包成.aar格式的包与别人共享,使用方法跟jar包基本一样. 导入步骤: 菜单栏: File —> New —> New Module… —> Import .JAR\/.AAR Packag

  • 问题内容: 我努力了: 但是会产生错误。如何在文件中导入CDN ? 问题答案: 您没有将CDN内容捆绑在JS内,这违背了将其包含在CDN上的目的:)。如果是JS,我会要求您使用externals,但是对于CSS,您可以使用https://github.com/jso0/html- webpack-cdn-plugin 代替。

  • 以前我使用文件 但是导入选项。新模块向导中的JAR/. AAR包已在Android Studio 4.2上删除,并且在建议使用项目结构对话框的文档之后,没有明确的导入答案。AAR模块,似乎已经过时 我尝试将模块添加为项目结构中的依赖项,但它不起作用

  • 我得到了一个统一的项目,这是一个AR游戏,在Android上运行。该应用程序在构建和直接从Unity运行时运行得很好,如果我将其导出为android库并使用android Studio构建,它也运行得很好。不幸的是,导出库的格式不适用于我们预期的用例;它创建了一个名为unityLibrary的模块,包含源代码和依赖项,但是我希望通过artifactory将unityLibrary作为包提供,所以我