2016-01-22 2 views
5

Я пытаюсь интегрировать NDK в свой проект. Я использую Gradle wrapper 2.9 и classpath: gradle-experimental:0.6.0-alpha3.

Gradle уровня

проекта:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle-experimental:0.6.0-alpha6' 
     } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

App Уровень Gradle:

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

model { 
    android { 
     compileSdkVersion = 23 
     buildToolsVersion = "23.0.2" 

     defaultConfig.with { 
      applicationId = "com.ms.knowursensor.android" 
      minSdkVersion.apiLevel = 11 
      targetSdkVersion.apiLevel = 23 
     } 
    } 

    compileOptions.with { 
     sourceCompatibility=JavaVersion.VERSION_1_7 
     targetCompatibility=JavaVersion.VERSION_1_7 
    } 

    android.ndk { 
     moduleName = "sensorgraph" 
    } 
    android.buildTypes { 
     release { 
      minifyEnabled = false 
      proguardFiles += file('proguard-rules.txt') 
     } 
    } 
    android.productFlavors { 
     create("arm") { 
      ndk.abiFilters += "armeabi" 
     } 
     create("arm7") { 
      ndk.abiFilters += "armeabi-v7a" 
     } 
     create("arm8") { 
      ndk.abiFilters += "arm64-v8a" 
     } 
     create("x86") { 
      ndk.abiFilters += "x86" 
     } 
     create("x86-64") { 
      ndk.abiFilters += "x86_64" 
     } 
     create("mips") { 
      ndk.abiFilters += "mips" 
     } 
     create("mips-64") { 
      ndk.abiFilters += "mips64" 
     } 
     create("all") 
    } 

    dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
     compile 'com.android.support:appcompat-v7:23.1.1' 
     compile 'com.android.support:support-v4:23.1.1' 
     compile 'com.android.support:design:23.1.1' 
     compile 'com.android.support:cardview-v7:23.1.1' 
     compile 'com.android.support:recyclerview-v7:23.1.1' 
    } 
} 

На строительстве приложения, я получаю эту ошибку:

Error:Unable to load class 'com.android.build.gradle.managed.BuildType$Impl'. Possible causes for this unexpected error include:

  • Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) Re-download dependencies and sync project (requires network)
  • The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem. Stop Gradle build processes (requires restart)
  • Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.
In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

После изменения описания ProGuard и аромат продукта Я получаю эту ошибку:

Error:A problem occurred configuring project ':app'. 
> The following model rules could not be applied due to unbound inputs and/or subjects: 
    compileOptions.with { ... } @ app\build.gradle line 15, column 5 
     subject: 
     - compileOptions.with Object [*] 
    dependencies { ... } @ app\build.gradle line 68, column 6 
     subject: 
     - dependencies Object [*] 
    [*] - indicates that a model item could not be found for the path or type. 
+0

Изменить строку proguard на proguardFiles.add (файл ('proguard-rules. Txt')) и временно прокомментировать все строки в android.productFlavors кроме create ("all"). – Milan

+0

@Milanix Я пробовал это. Теперь я получаю новую ошибку в строке 'compileOptions.with'. Я обновил вопрос –

+0

compileOptions.with {} должен находиться внутри android {} – Milan

ответ

8

Я была точно такая же проблема, и решение помещал «зависимостей» вне модели {}.

+0

эта работа для меня, –

0

Попытка убить демона и повторного запуска сборки

gradle --stop && gradle clean build

+0

Ошибка отображения: «gradle» не распознается как внутренняя или внешняя команда, операционная программа или командный файл. –

+2

Если вы используете mac, вы должны сделать ./gradlew --stop && ./gradlew clean build. Я столкнулся с тем же вопросом, что и вы сегодня, у меня были некоторые проблемы с моим файлом gradle, который я исправил сейчас. Я использую 0.6.0-alpha6, хотя андроидная студия жалуется, что альфа7 доступна, а с mavencentral и jcenter не имеет aplha7. – Milan

+0

@Milanix, как вы решили проблему? –

2

Я не знаю, поможет ли это решить вашу проблему, но это может привести к осложнениям, которые привели к этому.

Try: proguardFiles.add (файл ("ProGuard-Rules.txt")) ndk.abiFilters.add ("armeabi")

Вместо + = операторов. Поддержка вокруг методов агрегации списков была короткой, и я нашел, что метод .add() является наиболее подходящим.

+0

работала для меня. вопрос - http://stackoverflow.com/questions/36110912/unable-to-load-class-com-android-build-gradle-managed-buildtype-impl –

Смежные вопросы