Android 优化 改Bug随记

Dialog透明背景样式
// https://www.cnblogs.com/windlivefamily/articles/2133956.html
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="dialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item><!--边框-->
        <item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
        <item name="android:windowIsTranslucent">false</item><!--半透明-->
        <item name="android:windowNoTitle">true</item><!--无标题-->
        <item name="android:windowBackground">@color/transparent</item><!--背景透明-->
        <item name="android:backgroundDimEnabled">false</item><!--模糊-->
    </style>
</resources>
PermissionsDispatcher添加权限方法报错
// 切记在子模块导入库后,还需要添加对应的(***设置最新稳定版本号)
annotationProcessor "com.github.hotchemi:permissionsdispatcher-processor:***"
Dialog默认样式去除白色背景
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
R文件报红,项目正常运行

有人建议修改:
Android Studio应用—> 显示包内容 —> Contents —> bin —> idea.properties 修改里面

// 2500到5000之内的方法
idea.max.intellisense.filesize=5000

可能会解决这个问题,但是我这里是通过修改根目录下gradle插件版本号来解决的

// 反正你怀疑他的版本号导致的问题估计可以解决,不一定是我写的这个版本号
classpath 'com.android.tools.build:gradle:3.2.1'
集成库报错
Manifest merger failed with multiple errors, see logs

这种情况一般是AndroidManifest.xml合并冲突导致的,在主App的AndroidManifest.xml文件这句代码上下功夫,可解决90%以上的冲突

// 类似这类属性配置一下,我这里只列举了部分
tools:replace="android:theme,android:icon,android:supportsRtl,android:allowBackup"

也可以直接在Android Studio命令窗口,使用如下命令查看详细报错log

./gradlew processDebugManifest --stacktrace

合并多个清单文件,其实我们要搞清楚主App跟所有依赖库等配置文件的合并规则,这里贴一些小提示

build.gradle文件中配置属性优先级最高
在这里插入图片描述
多个配置文件属性合并优先级:
在这里插入图片描述
更多合并规则看google的 SDK 最靠谱

自定义一些属性,遇见类似报错
error: duplicate value for resource 'attr/hintColor' with config ''

办法:一般是属性名字跟其他地方冲突了,更改一下属性name即可

编译报错
Android NDK: APP_STL gnustl_static is no longer supported

这种情况一般是NDK版本过高导致,取巧解决:下载一个低版本NDK,解压后应用即可

报错flavors信息
All flavors must now belong to a named flavor dimension
defaultConfig {
//版本名后面添加一句话,意思就是flavor dimension 它的维度就是该版本号,这样维度就是都是统一的了
  flavorDimensions "versionCode"
}
程序包org.apache.http不存在

buildToolsVersion并级的build.gradle中导入这个库即可

 useLibrary 'org.apache.http.legacy'
AS报错:failed to find target with hash string 'Google Inc.:Google APIs:21’的报错解决方法

看这个错,甭管撒情况,下载相应版本的SDK然后重启Android Studio即可,记得,重启Android Studio

报错信息:Error: Expected resource of type raw [ResourceType]

既然是IDE做了检查,那我们可以绕过该检查就可以了

  • 方法1: 对代码的设置@SuppressWarnings(“ResourceType”)来消除警告

  • 方法2:

  android {
   lintOptions {
    disable "ResourceType"
   }
  }
报错信息:Error:resource not found
Error:resource 
android:style/TextAppearance.Material.Widget.Button.Borderless.Colored not found

将compileSdkVersion修改成25,并将对应的buildToolsVersion修改成25.0.2即可,这个错误不适合大众,仅供我自己参考

Bug永无止境,坦然接受,虚心修改就对了。你还可以参考

项目可正常运行,但部分class找不到R

注意项目根目录下build.gradle中gradle插件版本号和gradle文件夹中gradle-wrapper.properties配置gradle版本号,这2个版本号修改可能会导致出现该问题

项目运行 Could not start … bin/mips64el-linux-android-strip

这种一般是NDK版本导致的,解决办法:

android {
    packagingOptions {
        doNotStrip '*/mips/*.so'
        doNotStrip '*/mips64/*.so'
    }
}
Error: Program type already present…
Error: Program type already present: android.support.design.widget.CoordinatorLayout$Behavior

一般是因为版本号导致的

// api 'com.android.support:design:24.0.0' 我是这个版本号报错
api 'com.android.support:design:27.1.0'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

初心一点

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

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

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

打赏作者

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

抵扣说明:

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

余额充值