在Android开发中有时我们需要开发一些自定义的插件,标准流程网上都有,按照网上开发后发现出现一个问题
null
结构如下:
null
build.gradle 如下:

apply plugin: 'groovy'  
apply plugin: 'maven'  

dependencies {  
    implementation gradleApi()  
    implementation localGroovy()  
    implementation 'com.android.tools.build:gradle:3.4.0'  
  implementation 'org.javassist:javassist:3.20.0-GA'  
}  


repositories {  
    mavenCentral()  
    jcenter()  
}  

group='com.test.log'  
version='1.0.2'  

//打包到本地或者远程Maven库  
uploadArchives {  
    repositories {  
        mavenDeployer {  
            repository(url: uri('../repo'))  
        }  
    }  
}

根目录中build.gradle中也已配置路径
null
app中使用的apply plugin: 'com.test.log',其中‘com.test.log’与plugin中com.test.log.properties里.properties前面部分相同
null
发现无法使用报上面的错误。

一开始发现plugin中resouces中META-INF.gradle-plugins写成了META_INF.gradle-plugins,修改后发现还是会报错误 Plugin with id 'com.test.log' not found,网上查找后均找不到结果
最后反复测试发现了问题所在,在创建META-INF.gradle-plugins不能直接创建一个directory命名为META-INF.gradle-plugins,如果是直接创建的会当成一个package,需要先创建一个directory为META-INF再创建gradle-plugins,将AndroidStudio中的middle package关闭可看到区别。
null
可以看到差别如下
null
null
现删除repo仓库,重新创建META-INF和gradle-plugins后可以正常使用。