Android改Bug随记
- 集成库报错
- 自定义一些属性,遇见类似报错
- 编译报错
- 报错flavors信息
- 程序包org.apache.http不存在
- AS报错:failed to find target with hash string 'Google Inc.:Google APIs:21'的报错解决方法
- 报错信息:Error: Expected resource of type raw [ResourceType]
- 报错信息:Error:resource not found
- 项目可正常运行,但部分class找不到R
- 项目运行 Could not start ...... bin/mips64el-linux-android-strip
集成库报错
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'
}
}