Android中遇到的问题

继承LinearLayout后onDraw方法不调用

init{
    //添加这两句代码即可,在onDraw代码中会检测dividerDrawable属性,如果为空就不会调用onDraw
    dividerDrawable = ColorDrawable()
    showDividers = SHOW_DIVIDER_BEGINNING
}

kotlin中如果方法参数是接口,kotlin中使用lambda表达式,如果lambda表达式内部没有代码,通过编译会变成一个静态变量,多次调用对象一致

Thread {
    Log.d("", "")
}.start()
//编译后
(new Thread((Runnable)null.INSTANCE)).start();

sqlite3查看数据库的时候不显示列名,使用.headers on .mode column

使用依赖注入 加 JvmField注解可以不生成get,set方法,并改为public

想要查看源码

image.png 将gradle-wrapper.properties文件夹下的gradle下载地址改为all

之前集成Arouter一直失败的原因是没有在gradle文件中加入

kapt {
    arguments {
        arg("AROUTER_MODULE_NAME", project.getName())
    }
}

Arouter的注解处理器,需要在各个模块中显示的引入,不能通过基类包导入

遇到一个使用Arouter无法跳转的问题,原来是主项目没有引入子项目,所以没办法跳转

模块化隐式跳转

对于Service需要进行隐式跳转,需要设置报名,这里的包名不能是所在模块的包名,必须是住模块的包名

intent.action = "remote.aidl.service"
//巨坑,此处需要填写主工程的包名,而不是子模块的包名
intent.setPackage("com.td.moduleproject")
bindService(intent, ConnectCallBack(), Context.BIND_AUTO_CREATE)
<application>
    <service android:name="com.td.remoteservice.AidlService"
        android:process=":processB"
        android:exported="true">
        <intent-filter>
            <action android:name="remote.aidl.service"/>
        </intent-filter>
    </service>
</application>

报名需要设置com.td.moduleproject,主项目工程的包名,设置模块包名com.td.remoteservice是找不到这个service的

AIDL文件不生成

AIDL文件只能用纯英文字母,不能有数字或者符号, 需要在生成的文件中添加方法,原始文件是不会生成.java文件的,点击同步生成文件,不行就多点几次,或者clean一下,或者make一下,不行重启AndroidStudio

ViewBind获取不到ViewID

在多模块工程中,如果两个模块中的layout文件名相同,那么ViewBind会获取不到ID 报错信息Missing required view with ID

gradler 7.0+导入AAR包

1.在项目中创建一个根目录创建一个文件夹,将AAR包方进去 2.在新文件夹中创建build.gradle文件 3.build.gradle文件内容为

configurations.maybeCreate("default")
artifacts.add("default", file('BaiduLBS_Android.aar'))

文件结构如下图

image.png 4.修改setting文件夹,将创建的文件夹当做模块导入项目

image.png 5.修改项目主模块的build.gradle

image.png 6.同步一下项目,完成

gradler 下载慢

将项目中的文件下载链接替换为国内的

image.png

https://mirrors.cloud.tencent.com/gradle/gradle-7.4-bin.zip
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值