Android:构建发行版APK失败

时间:2019-11-08 10:53:06

标签: android gradle

运行./gradlew assembleRelease和./gradlew app:assembleRelease之间是否有任何区别。由于某种原因,第一个不适用于我,但是第二个可以正常工作

4 个答案:

答案 0 :(得分:1)

我有同样的错误。我只是将./gradlew assembleRelease替换为。/gradlew app:assembleRelease.,您应该尝试。

编辑:还有另一种方法。经过一番研究,我发现这段代码subprojects { subproject -> afterEvaluate{ if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) { android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion } } } }放在android / gladle中的EXT之前。而且您可以保留./gradlew assembleRelease

问题是与依赖项中的buildtools与android项目中的buildtools冲突

答案 1 :(得分:0)

./gradlew app:assembleRelease在模块{{1}中运行名为assembleRelease的任务,而app对已注册了该名称的任务的所有模块执行此任务

您可以运行./gradlew assembleRelease来查看将要执行的任务,并验证它是否也运行了./gradlew assembleRelease -m

  

由于某种原因,第一个不适用于我,但是第二个可以正常工作

不工作”是什么意思?我假设您的意思是它不会产生输出app:assembleRelease文件-您在哪里寻找输出工件?

答案 2 :(得分:0)

只需将其行复制到Proguard-rules.pro文件中

-dontskipnonpubliclibraryclasses
-dontobfuscate
-forceprocessing
-optimizationpasses 5

-ignorewarnings
-keep class * {
    public private *;
}

-keep class * extends android.app.Activity

-assumenosideeffects class android.util.Log {
  public static *** v(...);
  public static *** d(...);
  public static *** i(...);
  public static *** w(...);
  public static *** e(...);
}

答案 3 :(得分:-1)

通过格式化或存储方式进行存储/storage/emulated/0/Android/data/com.cprextract.rarzip/files/_rartemp_open_1573205040128/filename.ext