AndroidStudio学习笔记

本文讲述了在AndroidStudio中遇到的webview与NestedScrollView冲突解决方法,新版本aar打包异常及处理,以及编译问题的排查,包括类间对象传递和SDK版本兼容性问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

webview组件和其他组件起冲突

问题

webview和NestedScrollView组件一起使用时,会出现webview无法滑动的问题

解决方法

 NestedScrollView nestedScrollView = getView().findViewById(R.id.mine_scrowview);
        studentView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_UP)
                    nestedScrollView.requestDisallowInterceptTouchEvent(false);
                else
                    nestedScrollView.requestDisallowInterceptTouchEvent(true);
                return false;
            }
        });

重写内嵌在NestedScrollView里的webview的setontouchlistener方法
该方法适用于普通的scrollview

原因

scrollview的焦点判断高于内嵌在里面的webview导致的

新版本的Androidstudio打包aar时出现异常

具体的异常信息

Direct local .aar file dependencies are not supported when building an AAR

原因

gradle在7以上时分module调用aar时是正常的, 但是如果要把module单独打包成aar供其他项目调用的话需要另行设置

解决办法

https://www.jianshu.com/p/a6a221e04d30

  1. 在根目录中创建Directory(文件名自定义,这里定义为LocalRepo)在里面创建Directory(文件名自定义,这里定义为staticip)
  2. 把你需要调用的aar包剪切进去
  3. 复制其他module里的build.gradle
  4. 把复制过来的build.gradle里的内容删掉
  5. 在buil.gradle里添加configurations.maybeCreate("default") artifacts.add("default", file('需要调用的aar包包名.aar'))
  6. 在根目录下的setting.build里添加 include ':LocalRepo:staticip'注意这里的LocalRepo和staticp需要改成你在第一步设置的文件名
  7. 然后在你需要调用这个aar包的module的build.gradle里添加 implementation project(':LocalRepo:staticip')注意这里的LocalRepo和staticp需要改成你在第一步设置的文件名
    就可以正常调用和打包了

编译问题

没有动什么却提示编译失败

异常:如下,这个异常导致了compileDebugJavaWithJavac failed

The following annotation processors are not incremental: jetified-arouter-compiler-1.2.1.jar (com.alibaba:arouter-compiler:1.2.1), jetified-auto-service-1.0-rc2.jar (com.google.auto.service:auto-service:1.0-rc2).
Make sure all annotation processors are incremental to improve your build speed.

解决办法

./gradlew --stop

然后clean projects
重新run就行了

个人想法

上面的这个异常我在平时编译的事常备也会遇到,但不会导致compileDebugJavaWithJavac filed
于是我回想了一下在项目里的操作,唯一的可能就是修改了代码之后run,但是我强行终止了,然后重新run就出现了这个问题,代码是肯定没影响的,因为都是逻辑代码,所以大概领是我强行终止了gradle build,导致了某些缓存之类的出现了异常,进而导致了编译失败

类之间传递对象的那些事

问题

在使用

getIntent().getSerializableExtra("key",自定义类.class)

进行对象型数据传递时,Androidstudio提示需要Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU也既是sdk版本大于等于33才支持这个写法
那么低于这个版本的都怎么办呢

解决办法

强转

(自定义的类)getIntent().getSerializableExtra("key");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淳杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值