崩溃:从UI,CLI生成内部版本时,Android内部版本存在差异

时间:2020-07-20 08:59:00

标签: android gradle build android-gradle-plugin

每当我从本地计算机的终端使用CLI生成版本时,都会看到不满意的链接错误崩溃

./ gradlew clean:app:bundleRelease

崩溃:

java.lang.UnsatisfiedLinkError:找不到java.lang.String的实现

幸运的是,一切都可以在我的其他变体上正常运行,并且可以从Android Studio的UI生成Release版本。即

构建>生成签名包APK / App包两者

我的发现是:

  • 从CLI生成的AAB原始大小为7.4MB,从Ui生成的AAB则为7.8MB,进一步分析该AAB可以得到资源文件中的微小差异,而其他文件(如dex)中则没有任何差异。
  • 以前发生过1次崩溃,这与代码更改无关,此后,上述崩溃也开始出现。同样,这也不是代码更改的一部分,因为其他版本的构建工作正常
  • 我们使用NDK代码访问静态代码块中的API密钥,该代码块现在在CLI AAB文件中具有上述崩溃功能,但在UI AAB文件中可以正常工作,但根据调查发现,它与崩溃无关
  • 变体版本具有相同的配置,并且只有在我们将Android Studio连同gradle更新一起更新为4.0之后,这种配置才开始发生。先前的版本运行良好,因为我们为此设置了詹金斯设置。

我无法弄清楚构建的生成方式可能会有所不同,只有CLI构建会崩溃,因为如果我们看到EVENT-LOG选项卡,则Android Studio的UI也会在后台运行:app:bundleRelease。

请让我知道是否需要任何代码共享。这对我们很重要,因为我们的jenkins构建会运行。 / gradlew clean:appBundleRelease 以生成AAB并将其直接发布到playstore,这在android studio和gradle更新之前是完全可以的 发行版本:

release {
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
 }

0 个答案:

没有答案