Giter Club home page Giter Club logo

androidproject-kotlin's Issues

后面还会更新这个中台吗

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

建议收集

  • issue 是否有人曾提过类似的问题?【必答】(一旦出现重复提问我将不会再次解答)

  • 你觉得框架有什么不足之处?【必答】(你可以描述框架有什么令你不满意的地方)

  • 你觉得该怎么去完善会比较好?【非必答】(你可以提供一下自己的想法或者做法供作者参考)

WrapRecyclerView使用GridLayoutManager后addHeaderView可以单独一行吗?

问题描述

  • 框架版本【必填】:V13.2

  • 问题描述【必填】:使用WrapRecyclerView使用GridLayoutManager后addHeaderView现在是作为一个item方式增加到列表里面,如果想实现但是一行可以吗? 目前的效果如下面的截图。

  • 复现步骤【必填】:

        adapter = TrainAdapter(getAttachActivity()!!)
        adapter?.setOnItemClickListener(this)

        recyclerView?.adapter = adapter
        recyclerView?.addItemDecoration(GridSpaceDecoration(resources.getDimension(R.dimen.dp_5).toInt()))
        recyclerView?.layoutManager = GridLayoutManager(this.activity,2)

        val headerLayout: RelativeLayout? = recyclerView?.addHeaderView(R.layout.train_top_layout)

  • 是否必现【必填】:是

  • 出现问题的手机信息【必填】:模拟器

  • 出现问题的安卓版本【必填】:Android11

请回答

  • 是部分机型还是所有机型都会出现【必答】:全部

  • AndroidProject 最新的版本是否存在这个问题【必答】:是

  • 是否已经查阅框架文档还未能解决的【必答】:是

  • issue 是否有人曾提过类似的问题【必答】:否

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:是

  • 使用原生的权限 API 是否会出现该问题【必答】:是

其他

效果截图:
image

android10以上系统图片裁剪后上传头像失败

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

问题描述

  • 框架版本【必填】:V13.2

  • 问题描述【必填】:小米手机mix4,系统android11,个人主页上传头像裁剪后上传文件失败,

  • 复现步骤【必填】:点击上传头像,图片裁剪,上传失败,提示图片扩展名不被接受,debug发现header中的filename不是图片的filename,不带图片格式,所以服务器不接受。不清楚这个filename是怎么赋值的。issue上传了调试截图,大佬一看应该就明白

  • 是否必现【必填】:是

  • 出现问题的手机信息【必填】:小米手机mix4

  • 出现问题的安卓版本【必填】:android11

请回答

  • 是部分机型还是所有机型都会出现【必答】:部分,mix4 Android11系统会出现,mix2 android9系统不出现,推断和存储分区有关

  • AndroidProject 最新的版本是否存在这个问题【必答】:是

  • 是否已经查阅框架文档还未能解决的【必答】:是

  • issue 是否有人曾提过类似的问题【必答】:否

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:不确定,因为这个是向服务器上传才出现的问题,AndroidProject 不能的上传图片

  • 使用原生的权限 API 是否会出现该问题【必答】:否(排查一下是不是 AndroidProject 的代码存在问题导致的)

其他

  • 提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)

  • 提供截图或视频(根据需要提供,此项不强制)

F4343D6B-486D-4e6f-A600-2F8E251CF7AE
A28999BC-8BE4-4654-A5B0-FAB27B9989A2

notifyItemRemoved导致的数组下标越界问题

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

问题描述

  • 框架版本【必填】:13.2

  • 问题描述【必填】:notifyItemRemoved导致的数组下标越界问题

  • 复现步骤【必填】:调用 notifyItemRemoved 之后,如果你移除的刚好是倒数第二个数据,此时点击最后一条数据,会报索引越界

  • 是否必现【必填】:是

  • 出现问题的手机信息【必填】:跟手机无关

  • 出现问题的安卓版本【必填】:跟安卓版本无关

请回答

  • 是部分机型还是所有机型都会出现【必答】:全部(例如:某为,某 Android 版本会出现)

  • AndroidProject 最新的版本是否存在这个问题【必答】:是(如果用的是旧版本的话,建议升级看问题是否还存在)

  • 是否已经查阅框架文档还未能解决的【必答】:否(文档会提供最常见的问题解答,可以看看是否有自己想要的)

  • issue 是否有人曾提过类似的问题【必答】:否(看看曾经有人提过类似的问题,先参考一下别人是怎么解决的)

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:是(排查一下是不是自己的项目代码写得有问题导致的)

  • 使用原生的权限 API 是否会出现该问题【必答】:是(排查一下是不是 AndroidProject 的代码存在问题导致的)

其他

  • 提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)

  • 提供截图或视频(根据需要提供,此项不强制)

  • 提供解决方案(如果已经解决了的话,此项不强制)

根据网上的文章,我在基类中做了部分调整,目前没有问题
image

关于viewBinding支持的建议

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

建议收集

  • issue 是否有人曾提过类似的问题?【必答】没有

  • 你觉得框架有什么不足之处?【必答】目前还未支持viewBinding,控件还需要自己去findById很繁琐

  • 你觉得该怎么去完善会比较好?【非必答】基类添加viewBinding的支持

Demo内存泄漏

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

问题描述

  • 框架版本【必填】:demo

  • 问题描述【必填】:webview?

  • 复现步骤【必填】:

  • 是否必现【必填】:是

  • 出现问题的手机信息【必填】:TPS980P

  • 出现问题的安卓版本【必填】:7

请回答

  • 是部分机型还是所有机型都会出现【必答】:部分

  • AndroidProject 最新的版本是否存在这个问题【必答】:是

  • 是否已经查阅框架文档还未能解决的【必答】:否

  • issue 是否有人曾提过类似的问题【必答】:否

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:是

  • 使用原生的权限 API 是否会出现该问题【必答】:是

其他

  • 提供报错堆栈

┬───
│ GC Root: System class

├─ android.app.ActivityThread class
│ Leaking: NO (a class is never leaking)
│ ↓ static ActivityThread.sCurrentActivityThread
│ ~~~~~~~~~~~~~~~~~~~~~~
├─ android.app.ActivityThread instance
│ Leaking: UNKNOWN
│ Retaining 143.5 kB in 2731 objects
│ mInitialApplication instance of com.hjq.demo.app.AppApplication
│ mSystemContext instance of android.app.ContextImpl
│ ↓ ActivityThread.mActivities
│ ~~~~~~~~~~~
├─ android.util.ArrayMap instance
│ Leaking: UNKNOWN
│ Retaining 132.1 kB in 2541 objects
│ ↓ ArrayMap.mArray
│ ~~~~~~
├─ java.lang.Object[] array
│ Leaking: UNKNOWN
│ Retaining 132.1 kB in 2539 objects
│ ↓ Object[].[3]
│ ~~~
├─ android.app.ActivityThread$ActivityClientRecord instance
│ Leaking: UNKNOWN
│ Retaining 132.1 kB in 2538 objects
│ Library leak match: instance field android.app.ActivityThread$ActivityClientRecord#nextIdle
│ activity instance of com.hjq.demo.ui.activity.HomeActivity with mDestroyed = false
│ ↓ ActivityThread$ActivityClientRecord.nextIdle
│ ~~~~~~~~
├─ android.app.ActivityThread$ActivityClientRecord instance
│ Leaking: UNKNOWN
│ Retaining 125.4 kB in 2325 objects
│ activity instance of com.hjq.demo.ui.activity.PersonalDataActivity with mDestroyed = true
│ ↓ ActivityThread$ActivityClientRecord.activity
│ ~~~~~~~~
╰→ com.hjq.demo.ui.activity.PersonalDataActivity instance
​ Leaking: YES (ObjectWatcher was watching this because com.hjq.demo.ui.activity.PersonalDataActivity received
​ Activity#onDestroy() callback and Activity#mDestroyed is true)
​ Retaining 52.7 kB in 924 objects
​ key = cc01d22d-0ed5-4502-bc91-db7666a09f3e
​ watchDurationMillis = 5307
​ retainedDurationMillis = 304
​ mApplication instance of com.hjq.demo.app.AppApplication
​ mBase instance of androidx.appcompat.view.ContextThemeWrapper

                                                                                                METADATA
                                                                                                
                                                                                                Build.VERSION.SDK_INT: 25
                                                                                                Build.MANUFACTURER: rockchip
                                                                                                LeakCanary version: 2.7
                                                                                                App process name: com.hjq.demo.debug
                                                                                                Stats: LruCache[maxSize=3000,hits=2538,misses=46890,hitRate=5%]
                                                                                                RandomAccess[bytes=10815310,reads=46890,travel=29482433498,range=20901836,size=33254247]
                                                                                                Heap dump reason: 7 retained objects, app is visible
                                                                                                Analysis duration: 6588 ms

proguard 配置引入 proguard-base.pro 打出来的包会比 getDefaultProguardFile('proguard-android-optimize.txt') 大 1M+

建议收集

  • issue 是否有人曾提过类似的问题?【必答】
    没有

  • 你觉得框架有什么不足之处?【必答】

    现在有两份 proguard 配置:

    配置 1
    proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-sdk.pro', 'proguard-app.pro'
    
    配置 2
    proguardFiles 'proguard-base.pro', 'proguard-sdk.pro', 'proguard-app.pro'
    

    其中 proguard-base.pro 是 base 模块 consumerProguardFiles 'proguard-base.pro' 方式引入的,配置 2 这么写只是方便对比。
    无意间发现,配置 2 打出来的包相比配置 1 打的包,会多出近 2M 左右大小。

  • 你觉得该怎么去完善会比较好?【非必答】
    阿轮,空了的话,可否优化一下 proguard 的配置,在不影响正常功能的前提下,控制一下打出包的大小。

我想咨询一下

gradle导入apply plugin: 'kotlin-android-extensions'
可以直接引用xml的id
现在还可以用嘛,我看到项目里并没有用

OnScrimsListener 监听回调方法中控件参数明明传的是 this ,为什么是可空类型?

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

建议收集

  • issue 是否有人曾提过类似的问题?【必答】否

  • 你觉得框架有什么不足之处?【必答】比较疑惑 OnScrimsListener 监听的回调方法 onScrimsStateChange 中,控件参数明明传的是 this ,为什么是可空类型?

  • 你觉得该怎么去完善会比较好?【非必答】当前对象应该是不为空的吧,为什么要设计为可空的参数呢?直接非空不可以吗?

DialogActivity有内存泄漏

2021-12-31 11:19:18.818 26711-27091/com.hjq.demo.debug D/LeakCanary: Analysis in progress, working on: PARSING_HEAP_DUMP
2021-12-31 11:19:18.833 26711-26711/com.hjq.demo.debug D/LeakCanary: Watching instance of android.widget.FrameLayout (android.widget.FrameLayout received View#onDetachedFromWindow() callback) with key 19406ca4-dc80-4796-b766-a2e5658e5a33
2021-12-31 11:19:19.964 26711-27091/com.hjq.demo.debug D/LeakCanary: Analysis in progress, working on: EXTRACTING_METADATA
2021-12-31 11:19:20.132 26711-27091/com.hjq.demo.debug D/LeakCanary: Analysis in progress, working on: FINDING_RETAINED_OBJECTS
2021-12-31 11:19:20.135 26711-27091/com.hjq.demo.debug D/LeakCanary: Analysis in progress, working on: FINDING_PATHS_TO_RETAINED_OBJECTS
2021-12-31 11:19:21.810 26711-26741/com.hjq.demo.debug D/LeakCanary: Setting up flushing for Thread[IntentService[HeapAnalyzerService],5,main]
2021-12-31 11:19:23.643 26711-27091/com.hjq.demo.debug D/LeakCanary: Analysis in progress, working on: FINDING_DOMINATORS
2021-12-31 11:19:23.968 26711-27091/com.hjq.demo.debug D/LeakCanary: Found 5 paths to retained objects, down to 2 after removing duplicated paths
2021-12-31 11:19:23.968 26711-27091/com.hjq.demo.debug D/LeakCanary: Analysis in progress, working on: INSPECTING_OBJECTS
2021-12-31 11:19:24.035 26711-27091/com.hjq.demo.debug D/LeakCanary: Analysis in progress, working on: COMPUTING_NATIVE_RETAINED_SIZE
2021-12-31 11:19:24.465 26711-27091/com.hjq.demo.debug D/LeakCanary: Analysis in progress, working on: COMPUTING_RETAINED_SIZE
2021-12-31 11:19:24.704 26711-27091/com.hjq.demo.debug D/LeakCanary: Analysis in progress, working on: BUILDING_LEAK_TRACES
2021-12-31 11:19:24.708 26711-27091/com.hjq.demo.debug D/LeakCanary: Analysis in progress, working on: REPORTING_HEAP_ANALYSIS
2021-12-31 11:19:24.727 26711-27091/com.hjq.demo.debug D/LeakCanary: ​
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ====================================
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: HEAP ANALYSIS RESULT
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ====================================
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: 2 APPLICATION LEAKS
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: References underlined with "~~~" are likely causes.
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: Learn more at https://squ.re/leaks.
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: 167056 bytes retained by leaking objects
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: Signature: e1c76f0955a7d673de751fa83bd6a78af3abee8
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ┬───
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ GC Root: System class
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ├─ android.app.ActivityThread class
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Leaking: NO (a class is never leaking)
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ↓ static ActivityThread.sCurrentActivityThread
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ~~~~~~~~~~~~~~~~~~~~~~
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ├─ android.app.ActivityThread instance
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Leaking: UNKNOWN
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Retaining 239.0 kB in 2844 objects
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ mInitialApplication instance of com.hjq.demo.app.AppApplication
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ mSystemContext instance of android.app.ContextImpl
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ mSystemUiContext instance of android.app.ContextImpl
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ↓ ActivityThread.mNewActivities
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ~~~~~~~~~~~~~~
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ├─ android.app.ActivityThread$ActivityClientRecord instance
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Leaking: UNKNOWN
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Retaining 217.7 kB in 2440 objects
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ activity instance of com.hjq.demo.ui.activity.HomeActivity with mDestroyed = false
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ↓ ActivityThread$ActivityClientRecord.nextIdle
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ~~~~~~~~
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ├─ android.app.ActivityThread$ActivityClientRecord instance
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Leaking: UNKNOWN
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Retaining 216.8 kB in 2420 objects
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ activity instance of com.hjq.demo.ui.activity.DialogActivity with mDestroyed = true
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ↓ ActivityThread$ActivityClientRecord.activity
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ~~~~~~~~
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ╰→ com.hjq.demo.ui.activity.DialogActivity instance
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ Leaking: YES (ObjectWatcher was watching this because com.hjq.demo.ui.activity.DialogActivity received
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ Activity#onDestroy() callback and Activity#mDestroyed is true)
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ Retaining 167.1 kB in 1704 objects
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ key = ab6130d5-08ca-4c2a-ae8a-16e0474e580b
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ watchDurationMillis = 5282
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ retainedDurationMillis = 276
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ mApplication instance of com.hjq.demo.app.AppApplication
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ mBase instance of androidx.appcompat.view.ContextThemeWrapper
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: 13770 bytes retained by leaking objects
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: Signature: 50acba0689afc849672bede23bb43bfdabd34b
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ┬───
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ GC Root: System class
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ├─ android.app.ActivityThread class
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Leaking: NO (a class is never leaking)
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ↓ static ActivityThread.sCurrentActivityThread
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ~~~~~~~~~~~~~~~~~~~~~~
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ├─ android.app.ActivityThread instance
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Leaking: UNKNOWN
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Retaining 239.0 kB in 2844 objects
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ mInitialApplication instance of com.hjq.demo.app.AppApplication
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ mSystemContext instance of android.app.ContextImpl
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ mSystemUiContext instance of android.app.ContextImpl
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ↓ ActivityThread.mNewActivities
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ~~~~~~~~~~~~~~
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ├─ android.app.ActivityThread$ActivityClientRecord instance
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Leaking: UNKNOWN
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Retaining 217.7 kB in 2440 objects
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ activity instance of com.hjq.demo.ui.activity.HomeActivity with mDestroyed = false
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ↓ ActivityThread$ActivityClientRecord.nextIdle
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ~~~~~~~~
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ├─ android.app.ActivityThread$ActivityClientRecord instance
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Leaking: UNKNOWN
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Retaining 216.8 kB in 2420 objects
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ activity instance of com.hjq.demo.ui.activity.DialogActivity with mDestroyed = true
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ↓ ActivityThread$ActivityClientRecord.window
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ~~~~~~
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: ├─ com.android.internal.policy.PhoneWindow instance
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Leaking: YES (Window#mDestroyed is true)
2021-12-31 11:19:24.728 26711-27091/com.hjq.demo.debug D/LeakCanary: │ Retaining 13.8 kB in 280 objects
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: │ mContext instance of com.hjq.demo.ui.activity.DialogActivity with mDestroyed = true
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: │ mOnWindowDismissedCallback instance of com.hjq.demo.ui.activity.DialogActivity with mDestroyed = true
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: │ mWindowControllerCallback instance of com.hjq.demo.ui.activity.DialogActivity with mDestroyed = true
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: │ ↓ PhoneWindow.mDecor
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ╰→ com.android.internal.policy.DecorView instance
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ Leaking: YES (ObjectWatcher was watching this because com.android.internal.policy.DecorView received
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ View#onDetachedFromWindow() callback and View.mContext references a destroyed activity)
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ Retaining 5.1 kB in 59 objects
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ key = bc38649f-787b-4cf7-a59e-a1f8f48a85f7
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ watchDurationMillis = 5248
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ retainedDurationMillis = 231
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ View not part of a window view hierarchy
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ View.mAttachInfo is null (view detached)
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ View.mWindowAttachCount = 1
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ mContext instance of com.android.internal.policy.DecorContext, wrapping activity com.hjq.demo.ui.activity.
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ​ DialogActivity with mDestroyed = true
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ====================================
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: 0 LIBRARY LEAKS
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: A Library Leak is a leak caused by a known bug in 3rd party code that you do not have control over.
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: See https://square.github.io/leakcanary/fundamentals-how-leakcanary-works/#4-categorizing-leaks
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ====================================
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: 0 UNREACHABLE OBJECTS
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: An unreachable object is still in memory but LeakCanary could not find a strong reference path
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: from GC roots.
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ====================================
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: METADATA
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: Please include this in bug reports and Stack Overflow questions.
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: Build.VERSION.SDK_INT: 28
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: Build.MANUFACTURER: Xiaomi
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: LeakCanary version: 2.7
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: App process name: com.hjq.demo.debug
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: Count of retained yet cleared: 3 KeyedWeakReference instances
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: Stats: LruCache[maxSize=3000,hits=5704,misses=66084,hitRate=7%]
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: RandomAccess[bytes=4110624,reads=66084,travel=32053565719,range=20375371,size=25249073]
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: Heap dump reason: 5 retained objects, app is visible
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: Analysis duration: 5889 ms
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: Heap dump file path: /storage/emulated/0/Download/leakcanary-com.hjq.demo.debug/2021-12-31_11-19-16_274.hprof
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: Heap dump timestamp: 1640920764707
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: Heap dump duration: 2130 ms
2021-12-31 11:19:24.729 26711-27091/com.hjq.demo.debug D/LeakCanary: ====================================
2021-12-31 11:19:24.763 26711-26711/com.hjq.demo.debug D/LeakCanary: Watching instance of leakcanary.internal.HeapAnalyzerService (leakcanary.internal.HeapAnalyzerService received Service#onDestroy() callback) with key 892cd880-6a5a-4c94-9847-cf59a55d0c97

直接引入base和weight库后dimen识别不了

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

直接引入base和weight库后dimen识别不了

  • 框架版本【必填】:直接下载的最新版本的

  • 问题描述【必填】:直接引入base和weight库后dimen识别不了

  • 复现步骤【必填】:新建项目直接引入base和weight库后dimen识别不了

  • 是否必现【必填】:是

  • 出现问题的手机信息【必填】:红米note9

  • 出现问题的安卓版本【必填】:12

请回答

  • 是部分机型还是所有机型都会出现【必答】:部分

  • AndroidProject 最新的版本是否存在这个问题【必答】:是

  • 是否已经查阅框架文档还未能解决的【必答】:是

  • issue 是否有人曾提过类似的问题【必答】:否

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:否(排查一下是不是自己的项目代码写得有问题导致的)

  • 使用原生的权限 API 是否会出现该问题【必答】:否(排查一下是不是 AndroidProject 的代码存在问题导致的)

其他

  • 提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)

  • 提供截图或视频(根据需要提供,此项不强制)

  • 提供解决方案(如果已经解决了的话,此项不强制)

image
image
image

新建module提示错误

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

问题描述

  • 框架版本【必填】:XXX

  • 问题描述【必填】:XXX

  • 复现步骤【必填】:XXX(注意:目前不受理没有复现步骤的 Bug 单)

  • 是否必现【必填】:填是/否

  • 出现问题的手机信息【必填】:请填写出现问题的品牌和机型

  • 出现问题的安卓版本【必填】:请填写出现问题的 Android 版本

请回答

  • 是部分机型还是所有机型都会出现【必答】:部分/全部(例如:某为,某 Android 版本会出现)

  • AndroidProject 最新的版本是否存在这个问题【必答】:是/否(如果用的是旧版本的话,建议升级看问题是否还存在)

  • 是否已经查阅框架文档还未能解决的【必答】:是/否(文档会提供最常见的问题解答,可以看看是否有自己想要的)

  • issue 是否有人曾提过类似的问题【必答】:是/否(看看曾经有人提过类似的问题,先参考一下别人是怎么解决的)

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:是/否(排查一下是不是自己的项目代码写得有问题导致的)

  • 使用原生的权限 API 是否会出现该问题【必答】:是/否(排查一下是不是 AndroidProject 的代码存在问题导致的)

其他

  • 提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)

  • 提供截图或视频(根据需要提供,此项不强制)

image
image

  • 提供解决方案(如果已经解决了的话,此项不强制)

建议更新下 EasyHttp 的版本

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

建议收集

  • issue 是否有人曾提过类似的问题?【必答】
    没看到有类似问题

  • 你觉得框架有什么不足之处?【必答】
    框架使用的 EasyHttp 还是 10.2 版本,和现在的 12.8 版本已经有了较大差距,我更新框架中了 EasyHttp 的版本,发现大量报错,因为在新版本中很多 方法被删除了。比如EasyLog.print,TokenException和ResultException,这些在 EasyHttp 的项目中也没有找到对应的版本变更信息。

  • 你觉得该怎么去完善会比较好?【非必答】(你可以提供一下自己的想法或者做法供作者参考)
    建议更新框架中的 EasyHttp 的版本,或者其他有类似问题的三方库的版本。也可以在对于的库的说明中新增一个版本变更信息。方便大家找到对应可替换的方法。

更新计划,我记得之前看过,现在找不到了

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

建议收集

  • issue 是否有人曾提过类似的问题?【必答】有过类似问题,但是貌似未按照issue模板填写被关闭了。

  • 你觉得框架有什么不足之处?【必答】没有。目前只有Bug、建议可选,选建议感觉靠谱点,毕竟只是想问问版本更新的计划?

  • 你觉得该怎么去完善会比较好?【非必答】看了关于为什么不适用ViewBinding的说明,但是感觉还是使用ViewBinding更方便一些。当然,这只是自己的感受。有没有考虑使用Jetpack Compose的打算? 打扰了,谢谢。

建议升级gradle7,这版本对构建速度有优化

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

建议收集

  • issue 是否有人曾提过类似的问题?【必答】(一旦出现重复提问我将不会再次解答)

  • 你觉得框架有什么不足之处?【必答】(你可以描述框架有什么令你不满意的地方)

  • 建议升级gradle7,这版本对构建速度有优化

  • 你觉得该怎么去完善会比较好?【非必答】(你可以提供一下自己的想法或者做法供作者参考)

  • 升级下

编译release的时候报错

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

问题描述

  • 框架版本【必填】:V13.1

  • 问题描述【必填】:编译release的时候,或者打包release的时候报错:D:/MyDevelopmentSoft/android-studio/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.6.0/a40b8b22529b733892edf4b73468ce598bb17f04/kotlin-stdlib-1.6.0.jar!/META-INF/kotlin-stdlib.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0.

  • 复现步骤【必填】:编译release的时候,或者打包release的时候,打出来的release包无法正常安装使用

  • 是否必现【必填】:是,升级了最新kotlin1.7.2也不行,应该是某处依赖了低版本kotlin,目前小菜无法解决,请大佬给以解决方案!!谢谢!!

  • 出现问题的手机信息【必填】:所有

  • 出现问题的安卓版本【必填】:所有

请回答

  • 是部分机型还是所有机型都会出现【必答】:全部

  • AndroidProject 最新的版本是否存在这个问题【必答】:是

  • 是否已经查阅框架文档还未能解决的【必答】:是

  • issue 是否有人曾提过类似的问题【必答】:否

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:是

  • 使用原生的权限 API 是否会出现该问题【必答】:否

其他

  • 提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)

  • 提供截图或视频16672857609695

  • 提供解决方案(如果已经解决了的话,此项不强制)

无法改变手机底部导航栏的颜色

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

问题描述

  • 框架版本【必填】:最新版

  • 问题描述【必填】:activity中设置底部导航栏的颜色,底部导航栏的颜色没变!

  • 复现步骤【必填】:activity中重写 override fun createStatusBarConfig(): ImmersionBar {
    return super.createStatusBarConfig()
    .navigationBarColor(R.color.black)
    } 颜色并未改变

  • 是否必现【必填】:是

  • 出现问题的手机信息【必填】:小米10

  • 出现问题的安卓版本【必填】:安卓13

请回答

  • 是部分机型还是所有机型都会出现【必答】:部分(小米10)

  • AndroidProject 最新的版本是否存在这个问题【必答】:是

  • 是否已经查阅框架文档还未能解决的【必答】:是

  • issue 是否有人曾提过类似的问题【必答】:否

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:是

  • 使用原生的权限 API 是否会出现该问题【必答】:否

其他

  • 提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)

  • 提供截图或视频(根据需要提供,此项不强制)

  • 提供解决方案(如果已经解决了的话,此项不强制)

编译release版时报错

问题描述

  • 框架版本【必填】:V13.2

  • 问题描述【必填】:编译release版时报错,C:/Users/me/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm/1.6.0/f3b8fd26c2e76d2f18cbc36aacb6e349fcb9fd5f/kotlinx-coroutines-core-jvm-1.6.0.jar!/META-INF/kotlinx-coroutines-core.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0.

  • 复现步骤【必填】:编译release,或者打包release

  • 是否必现【必填】:是

  • 出现问题的手机信息【必填】:

  • 出现问题的安卓版本【必填】: Android 12

选择图片和发送验证码出现内存泄漏

┬───
│ GC Root: System class
│
├─ android.app.ActivityThread class
│    Leaking: NO (a class is never leaking)
│    ↓ static ActivityThread.sCurrentActivityThread
│                            ~~~~~~~~~~~~~~~~~~~~~~
├─ android.app.ActivityThread instance
│    Leaking: UNKNOWN
│    Retaining 106.3 kB in 2023 objects
│    mInitialApplication instance of com.hjq.demo.app.AppApplication
│    mSystemContext instance of android.app.ContextImpl
│    mSystemUiContext instance of android.app.ContextImpl
│    ↓ ActivityThread.mNewActivities
│                     ~~~~~~~~~~~~~~
├─ android.app.ActivityThread$ActivityClientRecord instance
│    Leaking: UNKNOWN
│    Retaining 88.6 kB in 1676 objects
│    activity instance of com.hjq.demo.ui.activity.ImageSelectActivity with
│    mDestroyed = false
│    ↓ ActivityThread$ActivityClientRecord.nextIdle
│                                          ~~~~~~~~
├─ android.app.ActivityThread$ActivityClientRecord instance
│    Leaking: UNKNOWN
│    Retaining 84.9 kB in 1622 objects
│    activity instance of com.hjq.demo.ui.activity.ImagePreviewActivity with
│    mDestroyed = true
│    ↓ ActivityThread$ActivityClientRecord.activity
│                                          ~~~~~~~~
╰→ com.hjq.demo.ui.activity.ImagePreviewActivity instance
​     Leaking: YES (ObjectWatcher was watching this because com.hjq.demo.ui.
​     activity.ImagePreviewActivity received Activity#onDestroy() callback and
​     Activity#mDestroyed is true)
​     Retaining 35.8 kB in 985 objects
​     key = c1ae8f60-3e89-47c5-b257-575db421cc9e
​     watchDurationMillis = 5212
​     retainedDurationMillis = 208
​     mApplication instance of com.hjq.demo.app.AppApplication
​     mBase instance of androidx.appcompat.view.ContextThemeWrapper

METADATA

Build.VERSION.SDK_INT: 29
Build.MANUFACTURER: OnePlus
LeakCanary version: 2.7
App process name: com.hjq.demo.debug
Stats: LruCache[maxSize=3000,hits=8232,misses=78989,hitRate=9%]
RandomAccess[bytes=4147609,reads=78989,travel=31284176847,range=19937136,size=27
967466]
Heap dump reason: 5 retained objects, app is visible
Analysis duration: 6211 ms
┬───
│ GC Root: System class
│
├─ android.app.ActivityThread class
│    Leaking: NO (a class is never leaking)
│    ↓ static ActivityThread.sCurrentActivityThread
│                            ~~~~~~~~~~~~~~~~~~~~~~
├─ android.app.ActivityThread instance
│    Leaking: UNKNOWN
│    Retaining 242.2 kB in 3674 objects
│    mInitialApplication instance of com.hjq.demo.app.AppApplication
│    mSystemContext instance of android.app.ContextImpl
│    mSystemUiContext instance of android.app.ContextImpl
│    ↓ ActivityThread.mNewActivities
│                     ~~~~~~~~~~~~~~
├─ android.app.ActivityThread$ActivityClientRecord instance
│    Leaking: UNKNOWN
│    Retaining 224.5 kB in 3327 objects
│    activity instance of com.hjq.demo.ui.activity.HomeActivity with mDestroyed
│    = false
│    ↓ ActivityThread$ActivityClientRecord.nextIdle
│                                          ~~~~~~~~
├─ android.app.ActivityThread$ActivityClientRecord instance
│    Leaking: UNKNOWN
│    Retaining 220.6 kB in 3270 objects
│    activity instance of com.hjq.demo.ui.activity.StatusActivity with
│    mDestroyed = true
│    ↓ ActivityThread$ActivityClientRecord.activity
│                                          ~~~~~~~~
╰→ com.hjq.demo.ui.activity.StatusActivity instance
​     Leaking: YES (ObjectWatcher was watching this because com.hjq.demo.ui.
​     activity.StatusActivity received Activity#onDestroy() callback and
​     Activity#mDestroyed is true)
​     Retaining 109.1 kB in 2382 objects
​     key = c9c20ec0-2472-429f-a975-f7357e90af1a
​     watchDurationMillis = 5211
​     retainedDurationMillis = 195
​     mApplication instance of com.hjq.demo.app.AppApplication
​     mBase instance of androidx.appcompat.view.ContextThemeWrapper

METADATA

Build.VERSION.SDK_INT: 29
Build.MANUFACTURER: OnePlus
LeakCanary version: 2.7
App process name: com.hjq.demo.debug
Count of retained yet cleared: 5 KeyedWeakReference instances
Stats: LruCache[maxSize=3000,hits=7783,misses=74983,hitRate=9%]
RandomAccess[bytes=3891975,reads=74983,travel=29736912157,range=19469856,size=27
502605]
Heap dump reason: 5 retained objects, app is visible
Analysis duration: 5973 ms

请严格按照 issue 模板来提问题,否则一律不受理

最近发现有很多人给我提 issue 没有认真按照模板上面的来填写,导致了在排查问题的过程中浪费了作者许多不必要的时间和精力,所以请后面提 issue 的人务必严格遵守,否则我不会受理,直接关闭 issue。

在点击注解切面定义中,连接点注解@Around("method() && @annotation(singleClick)"),在已经定义切点的情况下,是否可以直接使用@Around("method()")?

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

建议收集

  • issue 是否有人曾提过类似的问题?【必答】否

  • 你觉得框架有什么不足之处?【必答】无

  • 你觉得该怎么去完善会比较好?【非必答】(你可以提供一下自己的想法或者做法供作者参考)

请问如何进行手机平板尺寸适配的修改

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

问题描述

  • 框架版本【必填】:XXX

  • 问题描述【必填】:请问如何进行手机平板尺寸适配的修改

  • 复现步骤【必填】:XXX(注意:目前不受理没有复现步骤的 Bug 单)

  • 是否必现【必填】:填是/否

  • 出现问题的手机信息【必填】:请填写出现问题的品牌和机型

  • 出现问题的安卓版本【必填】:请填写出现问题的 Android 版本

请回答

  • 是部分机型还是所有机型都会出现【必答】:部分/全部(例如:某为,某 Android 版本会出现)

  • AndroidProject 最新的版本是否存在这个问题【必答】:是/否(如果用的是旧版本的话,建议升级看问题是否还存在)

  • 是否已经查阅框架文档还未能解决的【必答】:是/否(文档会提供最常见的问题解答,可以看看是否有自己想要的)

  • issue 是否有人曾提过类似的问题【必答】:是/否(看看曾经有人提过类似的问题,先参考一下别人是怎么解决的)

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:是/否(排查一下是不是自己的项目代码写得有问题导致的)

  • 使用原生的权限 API 是否会出现该问题【必答】:是/否(排查一下是不是 AndroidProject 的代码存在问题导致的)

其他

  • 提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)

  • 提供截图或视频(根据需要提供,此项不强制)

  • 提供解决方案(如果已经解决了的话,此项不强制)

导入报错,目前找不到解决办法

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

问题描述

  • 框架版本【必填】:v13.2

  • 问题描述【必填】:导入studio报错
    Build file 'D:\YG2\GITDEMO4\AndroidProject-Kotlin-master\app\build.gradle' line: 3
    A problem occurred evaluating project ':app'.

Failed to apply plugin 'kotlin-kapt'.
Extension with name 'kotlin' does not exist. Currently registered extension names: [ext, base, defaultArtifacts, sourceSets, reporting, java, javaToolchains, buildOutputs, android, androidComponents, aspectjx, kapt]

  • 复现步骤【必填】:每次导入都报错

  • 是否必现【必填】:是

  • 出现问题的手机信息【必填】:Redmi

  • 出现问题的安卓版本【必填】:android10

请回答

  • 是部分机型还是所有机型都会出现【必答】:部分 目前只有一台手机

  • AndroidProject 最新的版本是否存在这个问题【必答】:是

  • 是否已经查阅框架文档还未能解决的【必答】:是

  • issue 是否有人曾提过类似的问题【必答】:否

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:是

  • 使用原生的权限 API 是否会出现该问题【必答】:是

为什么构建成功后,运行项目,提示配置ndk

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

建议收集

image
这是截图

  • issue 是否有人曾提过类似的问题?【必答】(一旦出现重复提问我将不会再次解答)

  • 你觉得框架有什么不足之处?【必答】(你可以描述框架有什么令你不满意的地方)

  • 你觉得该怎么去完善会比较好?【非必答】(你可以提供一下自己的想法或者做法供作者参考)

请问如何进行手机平板及折叠屏尺寸动态适配的修改

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

建议收集

  • issue 是否有人曾提过类似的问题?【必答】没有

  • 你觉得框架有什么不足之处?【必答】缺少手机平板尺寸适配的动态修改

  • 你觉得该怎么去完善会比较好?【非必答】

1,怎么修改demo中的基础尺寸设置
2,怎么适配折叠屏,折叠和展示,其尺寸比例差别较大,展开后屏幕尺寸接近1:1,如何进行动态修改;

当我新建一个空activity的时候会自动在app.gradle里添加依赖,并且运行失败

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

问题描述

  • 框架版本【必填】:13.2

  • 问题描述【必填】:右键选择new-activity-empty views activity新建了一个activity过后

  • 1.会在app.gradle中新添加依赖
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.8.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'

2.并且会在app.gradle文件顶部导入插件apply plugin: 'org.jetbrains.kotlin.android'
3.清单文件也被篡改与string文件也被篡改。
4.再打包运行的时候就会报错:Can't determine type for tag '?attr/shapeAppearanceCornerSmall'

  • 复现步骤【必填】:同问题描述

  • 是否必现【必填】:是

  • 出现问题的手机信息【必填】:小米10

  • 出现问题的安卓版本【必填】:13

请回答

  • 是部分机型还是所有机型都会出现【必答】:全部

  • AndroidProject 最新的版本是否存在这个问题【必答】:是

  • 是否已经查阅框架文档还未能解决的【必答】:是

  • issue 是否有人曾提过类似的问题【必答】:否

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:是

  • 使用原生的权限 API 是否会出现该问题【必答】:否

其他

  • 提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)

  • 提供截图或视频(根据需要提供,此项不强制)
    1701325723735
    1701325772468
    1701325811154
    1701325867484
    1701325932096

  • 提供解决方案(如果已经解决了的话,此项不强制)

希望增加recycleview样式支持

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

建议收集

  • issue 是否有人曾提过类似的问题?【必答】没有

  • 你觉得框架有什么不足之处?【必答】关于recyclerview可以增加多布局的封装

  • 你觉得该怎么去完善会比较好?【非必答】(你可以提供一下自己的想法或者做法供作者参考)

当我把compileSdkVersion和compileSdkVersion改为34的时候出现一个问题!

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

问题描述

  • 框架版本【必填】:没有版本

  • 问题描述【必填】:当我把compileSdkVersion和compileSdkVersion改为34,run的时候提示Installation did not succeed. The application could not be installed: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED,我已经在清单文件里面将SplashActivity的标签下加了android:exported="true"

  • 复现步骤【必填】:先把compileSdkVersion和compileSdkVersion改为34,再在清单文件里面将SplashActivity的标签下加了android:exported="true",然后打包app

  • 是否必现【必填】:是

  • 出现问题的手机信息【必填】:小米10

  • 出现问题的安卓版本【必填】:安卓13

请回答

  • 是部分机型还是所有机型都会出现【必答】:全部

  • AndroidProject 最新的版本是否存在这个问题【必答】:是

  • 是否已经查阅框架文档还未能解决的【必答】:是

  • issue 是否有人曾提过类似的问题【必答】:否

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:是

  • 使用原生的权限 API 是否会出现该问题【必答】:否

其他

  • 提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)

  • 提供截图或视频(根据需要提供,此项不强制)

  • 提供解决方案(如果已经解决了的话,此项不强制)

Fatal Exception: java.lang.IllegalStateException: focus search returned a view that wasn't able to take focus!

【警告:请务必按照 issue 模板填写,不要抱有侥幸心理,一旦发现 issue 没有按照模板认真填写,一律直接关闭】

问题描述

  • 框架版本【必填】:13.2

  • 问题描述【必填】:Fatal Exception: java.lang.IllegalStateException: focus search returned a view that wasn't able to take focus!
    at android.widget.TextView.onKeyUp(TextView.java:8864)
    at android.view.KeyEvent.dispatch(KeyEvent.java:3383)
    at android.view.View.dispatchKeyEvent(View.java:13329)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1912)
    at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:685)
    at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1869)
    at android.app.Activity.dispatchKeyEvent(Activity.java:3447)
    at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.java:122)
    at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:84)
    at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:140)
    at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:599)
    at com.chiquedoll.chiquedoll.view.activity.BaseActivity.dispatchKeyEvent(BaseActivity.java:654)
    at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
    at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3089)
    at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:563)
    at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:6035)
    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5890)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5343)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5396)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5362)
    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5521)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5370)
    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5578)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5343)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5396)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5362)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5370)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5343)
    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8405)
    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8338)
    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8291)
    at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:4980)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7073)
    at java.lang.reflect.Method.invoke(Method.java)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)

  • 复现步骤【必填】:未知

  • 是否必现【必填】:否

  • 出现问题的手机信息【必填】:品牌:samsung
    型号:Galaxy S8+

  • 出现问题的安卓版本【必填】:Android 9

请回答

  • 是部分机型还是所有机型都会出现【必答】:未知

  • AndroidProject 最新的版本是否存在这个问题【必答】:是

  • 是否已经查阅框架文档还未能解决的【必答】:是

  • issue 是否有人曾提过类似的问题【必答】:否

  • 是否可以通过 AndroidProject 工程来复现该问题【必答】:否

  • 使用原生的权限 API 是否会出现该问题【必答】:是
    注: 出错误来自于BaseActivity中的dispatchKeyEvent 方法

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.