web-dev-qa-db-ja.com

invokedynamicには--min-sdk-version> = 26が必要です

今日はスタジオ3.0ベータ2.0バージョンをダウンロードしました。その後、既存のプロジェクトを開いていくつかの困難に直面しました。そのほとんどはGoogleとStack Overflowの助けを借りて解決できましたが、これはできません。

Error:Execution failed for task ':app:transformClassesWithDexBuilderForDebug'.
> com.Android.build.api.transform.TransformException: org.gradle.tooling.BuildException: com.Android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)

アプリのグラドルも投稿する

apply plugin: 'com.Android.application'
   Android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"

defaultConfig {
    applicationId "com.intersoft.snappy"
    minSdkVersion 19
    targetSdkVersion 22
    multiDexEnabled true
    versionCode 1
    versionName "1.0"
}
buildTypeMatching 'dev', 'debug'
buildTypeMatching 'qa', 'debug'
buildTypeMatching 'rc', 'release'
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
    }
}
sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] 
} }
packagingOptions {
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/dependencies.txt'
    exclude 'META-INF/LGPL2.1'
}
}
repositories {
mavenCentral()
mavenLocal()
jcenter()
maven { url "https://plugins.gradle.org/m2/" }
maven { url "https://s3.amazonaws.com/repo.commonsware.com" }
maven { url "https://jitpack.io" }
maven { url 'https://dl.bintray.com/ashokslsk/CheckableView' }
maven { url "https://maven.google.com" }

}
Android {
useLibrary 'org.Apache.http.legacy'
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.Android.support:appcompat-v7:26.0.1'
implementation 'com.github.mrengineer13:snackbar:1.2.0'
implementation 'com.Android.support:recyclerview-v7:26.0.1'
implementation 'com.Android.support:cardview-v7:26.0.1'
implementation 'com.Android.support:design:26.0.1'
implementation 'com.Android.support:percent:26.0.1'
implementation 'dev.dworks.libs:volleyplus:+'
implementation 'com.google.guava:guava:21.0'
implementation 'com.facebook.fresco:fresco:1.0.1'
implementation 'com.github.bumptech.glide:glide:3.7.0'
implementation 'com.wdullaer:materialdatetimepicker:3.1.1'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.github.stfalcon:frescoimageviewer:0.4.0'
implementation 'com.github.piotrek1543:CustomSpinner:0.1'
implementation 'com.Android.support:multidex:1.0.2'
implementation 'com.github.satyan:sugar:1.4'
implementation 'com.hedgehog.ratingbar:app:1.1.2'
implementation project(':sandriosCamera')
implementation('org.Apache.httpcomponents:httpmime:4.2.6') {
    exclude module: 'httpclient'
}
implementation 'com.googlecode.json-simple:json-simple:1.1'
}

afterEvaluate {
tasks.matching {
    it.name.startsWith('dex')
}.each { dx ->
    if (dx.additionalParameters == null) {
        dx.additionalParameters = ['--multi-dex']
    } else {
        dx.additionalParameters += '--multi-dex'
    }
}
}
subprojects {
project.plugins.whenPluginAdded { plugin ->
    if ("com.Android.build.gradle.AppPlugin".equals(plugin.class.name)) {
        project.Android.dexOptions.preDexLibraries = false
    } else if 
("com.Android.build.gradle.LibraryPlugin".equals(plugin.class.name)) {
        project.Android.dexOptions.preDexLibraries = false
    }
}
}

buildscript {
repositories {
    mavenCentral()
}

dependencies {
    classpath 'com.jakewharton.hugo:hugo-plugin:1.2.1'
}
}

apply plugin: 'com.jakewharton.hugo'

また、私の別のモジュールgradle

apply plugin: 'com.Android.library'
apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.Android-maven'

buildscript {
repositories {
    jcenter()
    jcenter()
    maven { url "https://maven.google.com" }
}
dependencies {
    classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
    classpath 'com.github.dcendents:Android-maven-gradle-plugin:1.4.1'
}
}

group = 'com.sandrios.Android'
version = '1.0.8'

ext {
PUBLISH_GROUP_ID = 'com.sandrios.Android'
PUBLISH_ARTIFACT_ID = 'sandriosCamera'
PUBLISH_VERSION = '1.0.8'
PUBLISH_CODE = 9
}

Android {
compileSdkVersion 26
buildToolsVersion "26.0.1"

defaultConfig {
    minSdkVersion 19
    targetSdkVersion 25
    versionCode PUBLISH_CODE
    versionName PUBLISH_VERSION
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
    }
}
lintOptions {
    abortOnError false
}
}

task generateSourcesJar(type: Jar) {
from Android.sourceSets.main.Java.srcDirs
classifier 'sources'
}

task generateJavadocs(type: Javadoc) {
failOnError false
source = Android.sourceSets.main.Java.srcDirs
classpath += project.files(Android.getBootClasspath()
        .join(File.pathSeparator))
}

task generateJavadocsJar(type: Jar) {
from generateJavadocs.destinationDir
classifier 'javadoc'
}

generateJavadocsJar.dependsOn generateJavadocs

artifacts {
archives generateSourcesJar
archives generateJavadocsJar
}

install {
repositories.mavenInstaller {
    pom.project {
        name PUBLISH_GROUP_ID
        description 'Simple integration of universal camera in Android for easy image and video capture.'
        url 'https://github.com/sandrios/sandriosCamera'
        inceptionYear '2016'

        packaging 'aar'
        version PUBLISH_VERSION

        scm {
            connection 'https://github.com/sandrios/sandriosCamera.git'
            url 'https://github.com/sandrios/sandriosCamera'

        }
        developers {
            developer {
                name 'arpitgandhi9'
            }
        }
    }
}
}

bintray {
Properties properties = new Properties()

properties.load(project.rootProject.file('local.properties').newDataInputStream())
user = properties.getProperty('bintray.user')
key = properties.getProperty('bintray.apikey')
configurations = ['archives']
pkg {
    repo = 'Android'
    name = 'sandriosCamera'
    userOrg = 'sandriosstudios'
    desc = 'Android solution to simplify work with different camera apis.'
    licenses = ['MIT']
    labels = ['Android', 'camera', 'photo', 'video']
    websiteUrl = 'https://github.com/sandrios/sandriosCamera'
    issueTrackerUrl = 'https://github.com/sandrios/sandriosCamera/issues'
    vcsUrl = 'https://github.com/sandrios/sandriosCamera.git'
    version {
        name = PUBLISH_VERSION
        vcsTag = PUBLISH_VERSION
        desc = 'Minor fixes.'
        released = new Date()
    }
}
}

repositories {
jcenter()
}

dependencies {
implementation 'com.Android.support:support-v4:26.0.0'
implementation 'com.Android.support:appcompat-v7:26.0.0'
implementation 'com.Android.support:recyclerview-v7:26.0.0'
implementation 'com.github.bumptech.glide:glide:3.6.1'
implementation 'com.yalantis:ucrop:2.2.0'
implementation 'gun0912.ted:tedpermission:1.0.2'
}

また、プロジェクトレベルのgradle

// Top-level build file where you can add configuration options common to 
all sub-projects/modules.

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.Android.tools.build:gradle:3.0.0-beta2'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    jcenter()
    maven {
        url "https://maven.google.com"
    }
}
}

このエラーを取り除くのを手伝ってください

41
Nilabja

私の答えを見つけました、私にとっては個人的に使用していました

implementation "com.google.guava:guava:23.0"

の代わりに

implementation "com.google.guava:guava:23.0-Android"
11
TheHebrewHammer

それは重要な部分です:

アプリモジュールのように追加されていないモジュールのbuild.gradleにこれを追加する必要があります。

Android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

また、プラグインのリポジトリを追加するのを忘れました:

buildscript {
    repositories {
        jcenter()
        google()
    }
}
79
DeKaNszn

あなたと同じエラー(SimException)がありました。 Android cleanアーキテクチャプロジェクトに3つのモジュールがありました。

  • データ(Androidライブラリ)
  • ドメイン(プレーンJavaモジュール)
  • presentation(app-すべてAndroidもの)

ソリューション

File/Project Structure...に移動します

モジュールのソースとターゲットの互換性が同じであることを確認してください(この場合は1.8)

20
Lukas

ライブラリをcompileOptions Java 1.8で追加しましたが、私のメインプロジェクトではいけません。追加の修正:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
14
Pablo Cegarra

私は同じ問題を抱えていました。最近.gradleキャッシュフォルダーを削除し、Android St​​udioとSDKを再インストールしました。最終的に問題をgit bisectしようとすると、それはなくなりました。私はこれがなぜ起こったかについて推測することしかできませんが、古いバージョンのビルドツールとSDKをダウンロードし、それらの古いツールを使用してコードのバージョンをビルド(およびおそらくキャッシュ)すると、 tは問題を引き起こします。

これは、新しい(API 26?)ビルドツールがソースコードをビルドする方法にある種のバグを指しているため、この問題が発生し、他のソリューションが機能しない場合の推奨事項は、 SDKバージョンを25以下に設定し、必要なビルドツールをインストールし、それらを使用してコードをコンパイルしてから、26以上のビルドツールに戻します。

4
Carl Anderson