1、$符号是个全局变量的引用,例如:"$ApplicationId"就是引用先设置的ApplicaionId配置
2、要用aar文件,要在android{}上加
repositories {
flatDir {
dirs 'libs'
}
}
然后再加上implementation(name: 'gowan_commonsdk_gowan-release', ext: 'aar')
3、Android Studio 报Error: Program type already present: **.BuildConfig(常出,暂时两种解决方法)
defaultConfig {
。。。。。。
multiDexEnabled true
。。。。。。。。。。
}
或者Clean一下项目就好
4、当代码全乱得时候,变得外面打开和里面编译器打开不同,重装as即可。
5、当发现gradle一直build失败的时候又看不到哪里错误,直接找到那个错误的task,然后手动gradle跑一下就可以看到错误
6、gradle在AS上面是作为插件独立版本。自己下载的gradle是整个gradle的版本
7、当AS的logcat没得显示设备等其他可控按钮,按一下AS右下角的event log就可以恢复了
8、多渠道打包的时候可以选择使用productFlavors,需要动态切换依赖库的时候可以在dependencies里面vivoImplementation project(path:':huayang_channel_vivo'),平常单个依赖的时候是小写开头的implementation project
9、gradle的Task,在方法外写上TaskA.dependsOn(TaskB) 表示跑TaskA之前会先跑TaskB。在方法外写上TaskA.finalizedBy(TaskB) 表示跑TaskA之后跑TaskB。方法识别像python要写在代码文件的下部分下面才会识别到
10、Rejecting re-init on previously-failed class 的问题,有个原因:是用ecplise打出来的jar打进包后,若要使用反编译修改包内相应的代码,此时如果用AndroidStudio修改完代码打出jar包再用工具换成smali放进包内用apktool重编译,修改的类就可能会出现previously-failed的报错。用回ecplise修改完代码打jar包在弄就好了,理论是跟编译版本有关系。
11、androidstudio用build variant贼好用,无缝换渠道包
12、用到buildConfigField的时候,发现怎么刷新gradle都不会生效产生出对应的值的时候,只需要去Build-Clean Project一下就有了。(buildConfigField用途:在gradle多渠道配置的值可以在java中体现,切换闪屏等作用途)
13、应用新的项目的时候发现com.android.application not found,不能直接使用新项目的时候,在最外层的build.gradle加上
buildscript {
repositories {
// google()
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
14、在run工程到真机的时候出现 Error while Launching activity,是因为真机的手机分身也装了这个应用,要渠道手机分身中删除才可以继续run
15、编译器运行项目正常的时候,apktool打包缺发现打开找不类的情况,有可能是因为65535的问题
16、使用productFlavors的时候,如果用在src/main/jniLibsjni的so库编译的时候不会加进去一起编译的,这个需要放在libs里面一起就可以
17、需要自己写些java脚本打jar,指定入口
jar {
manifest {
attributes 'Main-Class': 'com.gowan.packagetool.controller.Main'
}
}
18、aapt.v2.Aapt2Exception: Android resource linking failed
编译的时候提示这个很多时候纯粹是说找不到资源,使用的资源版本不一样当然找不到的,在build.gradle里面改一下
compileSdkVersion 28 buildToolsVersion "28.0.3" 对应版本就好了,一边低就不行了
19、包名不能以数字开头,.57k就打不了包了