2016-05-24 3 views
1

Ich benutze einzelne build.gradle Datei in der Anwendung. In Bezug auf Version 1.6 funktioniert es richtig. , aber ich möchte dies für die Standortaktualisierung mit Modul verwenden.Build grandle: Konnte die Methode packagingOptions() für Argumente root nicht finden Projekt "fasterDev"

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

dependencies { 
    compile 'com.google.android.gms:play-services:fp9.0.0' 
} 

Hier ist meine build.gradle.

build.gradle

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.1.0' 
    } 
} 
apply plugin: 'android' 

dependencies { 
    compile fileTree(dir: 'libs', include: '*.jar') 
} 

android { 
    compileSdkVersion 15 
    buildToolsVersion "21.1.2" 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 

     // Move the tests to tests/java, tests/res, etc... 
     instrumentTest.setRoot('tests') 

     // Move the build types to build-types/<type> 
     // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... 
     // This moves them out of them default location under src/<type>/... which would 
     // conflict with src/ being used by the main source set. 
     // Adding new build types or product flavors should be accompanied 
     // by a similar customization. 
     debug.setRoot('build-types/debug') 
     release.setRoot('build-types/release') 
    } 

} 

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' 
} 

Jede Tutorial oder einen Vorschlag für diese?

Logs:

org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48) 
Caused by: org.gradle.api.internal.MissingMethodException: Could not find method packagingOptions() for arguments [[email protected]] on root project 'fasterDev'. 
    at org.gradle.api.internal.AbstractDynamicObject.methodMissingException(AbstractDynamicObject.java:68) 

Antwort

15

Sie die außerhalb des Verschlusses android zur Verfügung gestellt haben, ist, dass der Grund Gradle vermutet, dass es Methode irgendeines root Projekts ist.

bewegen Sie es einfach in den android Verschluss, wie:

android { 
    ... 

    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' 
    }  
} 
+0

Dank für Ihre Zeit u Vorschlag .aber wenn ich das im Inneren des Android platziert, wie Sie vorschlagen. Ich werde "Doppelte Dateien in APK kopiert" get & log :: Sie können diese Dateien in Ihrem build.gradle ignorieren: \t android { \t packagingOptions { \t ausschließen 'lib/armeabi-V7A/gdbserver' \t} \t} Können Sie mehr dazu vorschlagen. – NovusMobile

+1

Das bedeutet, dass die Ausnahme, die Sie zuerst haben, gelöst ist und das Build-Skript jetzt korrekt ist. Sie müssen nur die bereitgestellte Konfiguration verbessern. Haben Sie versucht, den 'lib/armeabi-v7a/gdbserver' auszuschließen? Wenn dies '.so' native lib ist, dann versuche' exclude' in 'pickFirst' zu ändern, dies beinhaltet das einzige erste Auftreten der lib. – Stanislav

+0

groß. Vielen Dank. ausschließen zum pickFirst es ist neu für mich. Wenn Sie einen Artikel dazu haben. Bitte teilen Sie einen Link. – NovusMobile

Verwandte Themen