【问题标题】:Execution failed for task ':app:transformClassesWithMultidexlistForDebug'. > java.lang.UnsupportedOperationException (no error message)任务 ':app:transformClassesWithMultidexlistForDebug' 执行失败。 > java.lang.UnsupportedOperationException(没有错误信息)
【发布时间】:2018-07-01 03:16:22
【问题描述】:

我不确定为什么会发生这种情况,但我进行了一些挖掘并试图找到其他解决方案。没有人提出特别重复的问题:

android {
compileSdkVersion 26
buildToolsVersion "23.0.3"

configurations {
    all*.exclude group: 'com.android.support', module: 'support-v4'
    all*.exclude group: 'com.android.support', module: 'support-annotations'
}

defaultConfig {
    applicationId "com.myapp"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }


}

    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':react-native-customized-image-picker')
    compile project(':react-native-vector-icons')
    compile project(':react-native-restart')
    compile project(':react-native-image-picker')
    compile project(':react-native-fast-image')
    compile project(':lottie-react-native')
    compile project(':react-native-fetch-blob')
    compile "com.android.support:multidex:1.0.1"
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.fresco:fresco:1.0.1"
    compile "com.facebook.fresco:animated-gif:1.0.1"
    compile("com.facebook.react:react-native:0.54.0") { force = true }  // From node_modules

}

我删除了一些我发现的重复的compiles,但仍然没有帮助。我在跟踪中注意到了这个警告:

C:\ReactProjects\myapp\android\app\src\main\AndroidManifest.xml:11:5-29:19 Warning: application@android:theme was tagged at AndroidManifest.xml:11 to replace other declarations but no other declaration present C:\ReactProjects\myapp\android\app\src\main\AndroidManifest.xml:16:9-19:35 Warning: meta-data#com.bumptech.glide.integration.okhttp.OkHttpGlideModule was tagged at AndroidManifest.xml:16 to remove other declarations but no other declaration present

我不知道这是否会导致整个事情失败。最后是我的清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp"
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<application
  android:name=".MainApplication"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher"
  android:allowBackup="true"
  tools:replace="android:theme"
  android:theme="@style/AppTheme">
  <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:windowSoftInputMode="adjustResize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>
  <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>

在尝试成功构建时遇到的每一个问题,我都查看了 SO 或其他来源,但这个问题占了上风。我之前从未插入过compile "com.android.support:multidex:1.0.1",并且在此问题发生之前它就起作用了。还是没有成功。

我记得做的最后一件事是在主目录中保存一个名为“safecode.js”的文件,基本上它只有我想要保存的代码。

【问题讨论】:

  • 访问以下链接,希望您能得到答案:stackoverflow.com/questions/25981156/…
  • 或者尝试在清单文件的应用标签中添加这一行:tools:replace="icon, label" ---------e-g
  • @Opriday 我仍然收到错误消息。我觉得因为清单只是有警告它不会影响构建过程,但我认为它与build.gradle

标签: android react-native gradle compiler-errors


【解决方案1】:

我遇到了完全相同的问题,我知道这会是多么令人头疼的问题。这是我的解决方案:

1) 确保build.gradle 和settings.gradle 中没有重复的依赖项

2) 你们中的大多数人可能不喜欢这个,但我(很难输入这个)升级了大多数东西,例如:

  • compileSdkVersion 26 - build.gradle

  • buildToolsVersion "26.0.1" - build.gradle

  • distributionUrl=https://services.gradle.org/distributions/gradle-4.4-all.zip - settings.gradle
  • 类路径 'com.android.tools.build:gradle:3.1.0' - build.gradle not in app directory

注意:您的命令提示符的构建 UI 会发生变化,它看起来确实令人难以抗拒,但非常酷。你会习惯的。此外,您可能需要尽快更改 build.gradle 中的 compile。

这是解决方案:Android Studio build.gradle warning message

应该差不多了,但我也会告诉你我所做的其他可能会影响你的BUILD FAILED的事情:

1) 您可能需要 Java 8。JDK 1.8。将此添加到build.gradle app directory:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

2) 摆脱compile "com.android.support:multidex:1.0.1"

3)targetSdkVersion 22 update to 26

最后,

4) 在build.gradle not in app directory 中,将maven { url 'https://maven.google.com' } 放入两个存储库中。

注意:您可以使用 google() 代替它,但它对我不起作用,所以我坚持使用 maven { url 'https://maven.google.com' }。

另请注意:您可能会收到消息说,"WARNING: The specified Android SDK Build Tools version (26.0.1) is ignored, as it is below the minimum supported version (27.0.3) for Android Gradle Plugin 3.1.0."。嘿,26 似乎是我们的神奇数字,如果它有效,那就不要碰它。除非你绝对确定你需要这样做。

据我所知和经验,您从构建过程中收到的警告不会影响您的BUILD SUCCESS 或BUILD FAILED。

我希望这对每个人都有效!

【讨论】:

  • 是的!绿建成功!非常感谢。你的第二步对我有用。 @AndrewI。
  • 没问题。乐于助人。
猜你喜欢
  • 1970-01-01
  • 2018-06-10
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
  • 2019-11-02
  • 2019-07-14
  • 1970-01-01
  • 2020-07-06
相关资源
最近更新 更多