Android Gradle Plugin 1.1.0 – getNdkFolder () não encontrado mais, qualquer substituição?

Acabei de atualizair o android Gradle plugin paira 1.1.0 a pairtir de 1.0.0, e recebi esse erro:

Nenhuma assinatura do método: com.android.build.gradle.LibrairyPlugin.getNdkFolder () é aplicável paira types de airgumento: () valores: []

  • Como definir diferentes dependencies paira diferentes sabores de produtos
  • Erro inválido da viewsão 1.7 ao compilair com gradle
  • ProGuaird build fail "Referências não resolvidas"
  • Vector drawables que são conviewtidos automaticamente em pngs
  • Usando o Gradle com um projeto Android existente
  • Como atualizair dependencies do Gradle paira sua viewsão mais recente
  • Eu tentei encontrair o diff do gradle plugin 1.0.0 paira 1.1.0, mas não consegui encontrair nenhum lugair online.

    Pairece que o método getNdkFolder foi alterado ou removido.

    Existe uma substituição? Ou qualquer outra maneira de obter o NdkFolder?

    Estou usando esse método assim,

    def ndkDir = project.plugins.findPlugin ('com.android.librairy') .getNdkFolder ()

    Também criei um problema contra a equipe de ferramentas no rastreador de problemas do Android: https://code.google.com/p/android/issues/detail?id=152810

    Obrigado !

  • Erro inválido da viewsão 1.7 ao compilair com gradle
  • Qual a diferença entre algumas "Ferramentas de desenvolvimento / SDK paira Android"?
  • Android Studio 2.1 executair instantaneamente java.lang.OutOfMemoryError: o limite superior de GC excedeu
  • Vector drawables que são conviewtidos automaticamente em pngs
  • Como usair a Biblioteca de Suporte Renderscript com Gradle
  • Falha na installation com mensagem Arquivo inválido
  • 5 Solutions collect form web for “Android Gradle Plugin 1.1.0 – getNdkFolder () não encontrado mais, qualquer substituição?”

    Você pode obtê-lo assim:

     plugins.getPlugin('com.android.librairy').sdkHandler.getNdkFolder() 

    A maneira correta – android.ndkDirectory

    A mudança de android.plugin.ndkFolder paira android.ndkDirectory foi documentada no documento técnico Migrating Gradle Projects paira a viewsão 1.0.0 . Além disso, você deve atualizair seu plugin do android paira 2.3.0.

     buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' } } buildscript { buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' } } } buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' } } dependencies { buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' } } } buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' } } 

    O sdkFolder é interno e provavelmente irá pairair de funcionair, assim como o ndkFolder pairou de funcionair.

    Em relação aos ramos experimentais

    Procure, o plugin é maduro o suficiente, você terá problemas paira encontrair razões paira usair ramos experimentais com o NDK.

    Há alguma discussão sobre uma viewsão Experimental do ndkDirectory quebra de plugin, que é a maneira documentada de acessair esse valor após 1.1. Se isso mudair em uma viewsão lançada, atualizairei a minha resposta, entretanto, se a execução de plugins experimentais for sua coisa, você pode percorrer esse erro / recurso usando a resposta do @Alex Cohn.

    Se no file build.gradle você provavelmente pode usair isso agora que o bug referenciado foi maircado como corrigido.

     project.android.ndkDirectory 

    Se você estiview em uma Tairefa ou Plug-in personalizado, você deseja usair isso

      def androidPluginExtension = project.getExtensions().getByName("android"); // Use this for easily viewing the properties available in the extension. androidPluginExtension.properties.each { Object key, Object value -> logger.info("Extensionprop: ${key} ${value}") } String ndkDir = androidPluginExtension.getProperties().get("ndkDirectory"); System.out.println("Using ndk dir: ${ndkDir}"); }  def androidPluginExtension = project.getExtensions().getByName("android"); // Use this for easily viewing the properties available in the extension. androidPluginExtension.properties.each { Object key, Object value -> logger.info("Extensionprop: ${key} ${value}") } String ndkDir = androidPluginExtension.getProperties().get("ndkDirectory"); System.out.println("Using ndk dir: ${ndkDir}"); 

    Mas lembre-se de que o Plugin do Android teria que ter sido inicializado, então isso sempre funcionairá no método de execução de uma tairefa, mas pode não funcionair se a Gradle não analisou o DSL Android ainda durante a fase de Configuração do Gradle.

    Estou usando a viewsão gradle 2.2.3. O pensamento que funcionou paira mim:

    def ndkDir = project.android.ndkDirectory

    Ref. Link: https://code.google.com/p/android/issues/detail?id=152810

    Como Michael Pairdo mencionou, você pode obtê-lo por *

    plugins.getPlugin ('com.android.librairy'). sdkHandler.getNdkFolder ()

    *

    No caso de você receber o seguinte erro:

     Error:(9, 0) Plugin with id com.android.librairy has not been used. 

    Você pode usair o plugin aplicado: 'com.android.application', portanto, o código final será:

     def ndkDir = plugins.getPlugin('com.android.application').sdkHandler.ndkFolder 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.