日程bug解决记录

1.打包时出错
Error:Execution failed for task ':main:transformClassesAndResourcesWithProguardForRelease'.
> Job failed, see logs for details
Error:Execution failed for task ':main:transformClassesWithJarMergingForDebug'.

> com.android.---.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/gson/Gson$5.class


解决办法:
该bug是由于资源重复造成的,在AS中双击shift键先查找gson.class的类在几个依赖包中存在,然后直接删除其中的一个低版本的依赖包
在项目中找到External Libraries里面的对应的低版本依赖包pom.xml 找到gson的groupId后,我们就要把它去掉就可以了,现在就来把它去掉,
步骤如下:
打开项目的build.gradle,把原来的compile ‘com.squareup.retrofit2:converter-gson:2.1.0’ 改成这样:
 compile ('com.squareup.retrofit2:converter-gson:2.1.0'){
        exclude group : 'com.google.code.gson'
    }

其中com.google.code.gson就是gson的groupId。 


2.签名包打完后出现点击进入百度地图就崩溃的问题

解决办法:

libBaiduMapSDK_base_v4_1_1.so" is 32-bit instead of 64-bit
参照百度的官方demo在libs添加了arm64-v8a 包后就正常了
// AS打包出现app:transformClassesAndResourcesWithProguardForRelease错误
buildTypes {
        release {
            minifyEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//主要是添加了这个兼容ndk程序才不会崩
    ndk {
                abiFilters "x86","armeabi"
            }
        }
    }
lintOptions { 
checkReleaseBuilds false 
abortOnError false 


3.错误提示信息:
        Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
原因:
     activity继承了context重载了startActivity方法,如果使用acitvity中的startActivity,不会有任何限制。
     而如果直接使用context的startActivity则会报上面的错误,根据错误提示信息,可以得知,如果要使用这种方式需要打开新的TASK。
故, 解决方法:
   intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

  context.startActivity(intent);

改错误通常在holder出现。

4.点九图带来的错误

Error:Execution failed for task ':main:mergeDebugResources'.

> Error: Some file crunching failed, see logs for details

添加了一张.9图片后就一直报错,删除了就没事了。说明是点九图片的问题


5.NoClassDefFoundError: Class not found using the boot class loader; no stack available


解决:布局文件有同名的,结果系统默认引用错了。预防:不要在不同包下建立相同名字的xml文件

更换保存的layout名称

java.lang.NoSuchFieldError: No static field textViewProvince of type I in class 


具体参考博文:https://www.cnblogs.com/zhujiabin/p/7195960.html


6.provider相关的报错,原因是不同包下都使用了provider,结果导致崩溃。只要把其中一个provider名字改下就好了。

报错信息:AndroidManifest merge error using FileProvider

具体解决办法参照 点击打开链接


猜你喜欢

转载自blog.csdn.net/qq_34207101/article/details/79582418