簡體   English   中英

Android Studio 2.0使用gradle-experimental插件打破ndk構建

[英]Android Studio 2.0 breaks ndk build with gradle-experimental plugin

將Android Studio更新到2.0版(穩定版)后,我的項目的Gradle同步已中斷。

錯誤彈出:

Android Gradle Plugin Update Required

The project is using an incompatible version of the Android Gradle plugin.

To configure the project, the IDE will update the Android Gradle Plugin to version 2.0.0.

You can learn more about this version of the plugin from this [release notes][1].

-> Update   -> Cancel and update manually

Gradle Sync問題(在消息視圖中):

Error:The project is using an incompatible version of the Android Gradle plugin.
Please update your project to use version 2.0.0.
-> Search in build.gradle files

我正在使用gradle-experimental插件( classpath 'com.android.tools.build:gradle-experimental:0.6.0-alpha5' gradle-experimental:0.6.0-alpha5 classpath 'com.android.tools.build:gradle-experimental:0.6.0-alpha5' )來推薦ndk,例如這里 ,因此我的build.gradle看起來很像像這樣(使用com.android.model.application插件)我不能簡單地'更新'到classpath 'com.android.tools.build:gradle:2.0.0'classpath 'com.android.tools.build:gradle:2.0.0'

apply plugin: 'com.android.model.application'

def superpowered_path = file('.').absolutePath + "/src/main/jni/Superpowered"

model {

    repositories {
        libs(PrebuiltLibraries) {
            superpowered {
                headers.srcDir "${superpowered_path}"
                binaries.withType(StaticLibraryBinary) {
                    staticLibraryFile = file("${superpowered_path}/lib/${targetPlatform.getName()}/libSuperpoweredAndroid.a")
                }
            }
        }
    }

    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.3"

        defaultConfig {
            applicationId "APPID"
            minSdkVersion.apiLevel 15
            targetSdkVersion.apiLevel 23
            versionCode 1
            versionName "1.0"

            archivesBaseName = "APPNAME-$versionCode-$versionName"

            renderscriptTargetApi 20
            renderscriptSupportModeEnabled true
        }

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles.add(file('proguard-rules.pro'))
                signingConfig = $("android.signingConfigs.releaseSigning")
            }
            debug {
                applicationIdSuffix ".debug"
                versionNameSuffix "-DEBUG"
                signingConfig = $("android.signingConfigs.debugSigning")
            }
        }

        sources {
            main {
                jni {
                    dependencies {
                        library "superpowered" linkage "static"
                    }
                }
            }
        }

        /*
         * native build settings
         */
        ndk {
            moduleName = "NDKMODULE-jni"
            cppFlags.add("-std=c++11")
            ldLibs.addAll(["android", "log", "OpenSLES"])
            abiFilters.addAll(["armeabi-v7a", "x86", "arm64-v8a"])
        }
    }

    android.signingConfigs {
        create("releaseSigning") {
            keyAlias 'release'
            keyPassword 'PASSWORD'
            storeFile file('KEYSTORE.jks')
            storePassword 'PASSWORD'
            storeType "jks"
        }
        create("debugSigning") {
            keyAlias 'debug'
            keyPassword 'PASSWORD'
            storeFile file('KEYSTORE.jks')
            storePassword 'PASSWORD'
            storeType "jks"
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar', '*.a'])
    testCompile 'junit:junit:4.12'

    // Android support libs
    compile 'com.android.support:appcompat-v7:23.2.1'
    compile 'com.android.support:design:23.2.1'
    compile 'com.android.support:support-v4:23.2.1'
    compile 'com.android.support:recyclerview-v7:23.2.1'

    // Android Async Http
    // Apache 2.0 http://loopj.com/android-async-http/
    compile 'com.loopj.android:android-async-http:1.4.9'

    // OkHttp http://square.github.io/okhttp/
    // Apache v2
    compile 'com.squareup.okhttp3:okhttp:3.2.0'

    // Picasso http://square.github.io/picasso/
    // Apache v2
    compile 'com.squareup.picasso:picasso:2.5.2'

    // Retrofit http://square.github.io/retrofit/
    // Apache v2
    compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
}

我在Android Studio 2.0問題上找到的所有內容都是關於canary / beta版本的,並且似乎與此問題有不同的問題。 在更新之前,Gradle同步按預期工作。 (我一直在使用最后一個穩定的版本,1.5.1我認為?)。

我希望有關於如何在Android Studio 2.0中使用ndk的一些想法。

使用gradle-experimental:0.7.0-alpha1為我修復了Gradle同步: classpath 'com.android.tools.build:gradle-experimental:0.7.0-alpha1' :gradle-experimental:0.7.0-alpha1 classpath 'com.android.tools.build:gradle-experimental:0.7.0-alpha1'

使用以下類路徑修復了我的問題。

classpath 'com.android.tools.build:gradle-experimental:0.7.0'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM