问题一:
- 问题:在使用百度地图开发时,使用手机没事儿,但是使用模拟器报错:
java.lang.IllegalArgumentException: No config chosen
-
原因:SDK找不到支持OPENGL的硬件,勾选Use Host Gup选项,说明模拟器使用的是物理机上的GPU。如果用户物理机没有独立显卡,就会报错,此种情况下不勾选这个选项就可以了。模拟器设置问题,与SDK无关。
-
解决方法:
使用最新的TextureMapView替代之前的MapView就可以了。
问题二:
- 问题:项目中加入了jackson的开发包,编译运行时报错:
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException:
Duplicate files copied in APK META-INF/NOTICE
File1:D:\Code\XTCKuwoWatch\app\libs\jackson-core-2.4.4.jar
File2:D:\Code\XTCKuwoWatch\app\libs\jackson-databind-2.4.4.jar
-
原因:多个 jar 包里包含了同样的文件(NOTICE.txt),导致打包时因为担心相互覆盖问题而提示出错
-
解决方法:
在 app 下的 build.gradle 中android { }内增加这段配置
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
问题三:
- 问题:编译时报错
Error:(30, 0) Could not get unknown property 'compile' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
-
原因:build.gradle中依赖错误,添加代码的位置可能不对,或者改变了代码的格式,造成studio识别不了
-
解决方法:
调整错误的代码格式
问题四:
- 问题:错误日志:
Error:(26, 9) Attribute application@icon value=(@drawable/logo) from AndroidManifest.xml:26:9
Error:(28, 9) Attribute application@theme value=(@style/ThemeActionBar) from AndroidManifest.xml:28:9
is also present at XXXX-trunk:XXXXLib:unspecified:15:9 value=(@style/AppTheme)
Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:24:5 to override
Error:Execution failed for task ':XXXX:processDebugManifest'.
Manifest merger failed with multiple errors, see logs
-
原因:AS的Gradle插件默认会启用Manifest Merger Tool,若Library项目中也定义了与主项目相同的属性(例如默认生成的Android:icon和android:theme),则此时会合并失败,并报上面的错误
-
解决方法:
在Manifest.xml的application标签下添加两句:
tools:replace="android:icon, android:theme"
xmlns:tools="http://schemas.android.com/tools"
问题五:
-
问题:Glide加载图片背景出现浅绿色现象
-
原因:Glide默认的Bitmap格式是RGB_565,这是导致在加载图片是可能变绿的原因。RGB_565代表8位RGB位图,而Picasso默认的Bitmap格式是ARGB_8888代表32位RGB位图,位图位数越高代表其可以存储的颜色信息越多,图像也就越逼真,这也是Picasso图像质量更好的原因,但某些情況下容易OOM。
-
解决方法:
-
1.使用Glide加载图片时:
Glide.with(context) .load(url) .diskCacheStrategy(DiskCacheStrategy.SOURCE)//将原图缓存到本地 .into(imageview);
-
2.如果第一种方法未能解决问题,可以将Bitmap的格式改为ARGB_8888。
①创建一个 GlideConfiguration类去实现GlideModule,修改Bitmap的格式。
/** * 增加图片清晰度 * Created by gss on 2017/6/29 18:13. */ public class GlideConfiguration implements GlideModule { @Override public void applyOptions(Context context, GlideBuilder builder) { builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888); } @Override public void registerComponents(Context context, Glide glide) { } }
②清单文件中application根目录下添加
<meta-data android:name="包路径.GlideConfiguration" android:value="GlideModule" />
③ 如果项目代码混淆了,在proguard-rules.pro中取消混淆Glide,否则图片加载不出来
## 配置取消混淆Glide -keepnames class 包路径.GlideConfiguration
问题六:
- 问题:android 7.0 调用系统相机崩溃
- 崩溃日志:android.os.fileuriexposedexception: file:///storage/emulated/0/tmpavatar exp。
- 解决方法:不用修改原有代码,在Application的oncreate方法中,添加如下代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
builder.detectFileUriExposure();
}
问题七:
- 问题:新建项目报支持库异常
- 异常日志:
Error:Execution failed for task ':app:preDebugAndroidTestBuild'.
> Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and test app (27.1.1) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.
- 解决方法:
1、不能解决问题
build->Rebuid-project
2、解决,在app下的build.gradle文件中的dependences {}中添加
androidTestCompile('com.android.support:support-annotations:26.1.0') {
force = true
}
问题八:
- 问题:提示我们找不到@android:attr/windowEnterAnimation,因为已经不支持@开头使用android自带的属性,我们只要把@符号删掉就可以了。
- 异常日志:
error: style attribute '@android:attr/windowEnterAnimation' not found.
- 解决方法:
<item name="@android:windowEnterAnimation">@anim/slide_top_in</item>
去掉@
<item name="android:windowEnterAnimation">@anim/slide_top_in</item>
问题九:
- 问题:Cause: buildOutput.apkData must not be null。
- 解决方法:
这个问题最主要的是和之前的output.json有冲突,只要把之前的json文件删除,重新打包即可