项目中遇到的那些bug(一)

  对于在电脑前一坐就是一整天的码农们,除了吃饭上厕所,其他时间我们眼里只有代码。在这单一的生活中我们如何取乐,我想莫过于当我们用尽全力解决bug时的快感和成就感。对于一个一直在关注他人博客从不写博客的我来说,没想到一开始就以bug的主题和大家见面,以下是我在项目中遇到的bug,先列举了三个,剩下的后期博客中会跟进,请大家关注,有什么不妥之处还望大家指出来。我的每一小进步都离不开大家的支持!

bug one:java.lang.UnsatisfiedLinkError

这里写图片描述

  视频播放器开发引用vitamio第三方库的时候,针对部分手机(如:华为P8max)会报上面的错,通过百度搜索,尝试了很多种方式,最终解决方案如下:

对于Android Studio.
首先在工程目录下的gradle.properties里面加上 android.useDeprecatedNdk=true
然后在app的build.gradle中添加如下代码,然后rebuild.

这里写图片描述

android {  

    defaultConfig {  
        multiDexEnabled true   
        ndk {  
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"  
        }  
    }  

    sourceSets {  
        main {  
            jniLibs.srcDirs = ['libs']  
        }  
    }  

}  

bug two:AndroidStudio导入项目一直Building

大家应该遇到过as导入项目时有时会一直在building中,按取消没反应,只能关掉as进程。解决方案如下:
1.随便找一个你能运行的as项目

2.打开gradle-wrapper.properties,文件目录:项目/gradle/wrapper/gradle-wrapper.properties

3.复制distributionUrl这一整行的内容,eg: distributionUrl=https://services.gradle.org/distributions/gradle-2.8-all.zip

4.打开你要导入的项目的gradle-wrapper.properties,具体步骤与步骤2相同

5.把步骤3复制的内容,替换你要导入的项目的gradle-wrapper.properties文件的distributionUrl这一行

6.再重启as,导入项目就可以了

提示:记得在工程目录下的build.gradle中对应修改gradle版本,如图
**这里写图片描述**


bug three:Attribute “titleTextStyle” has already been defined

在Android Studio中准备引入Eclipse中的项目,而此项目中包含了第三方库actionbarsherlock,是一个作者不再维护的库。在我把此项目引入到Android Studio中编译时,提示了”Attribute “titleTextStyle” has already been defined” 这样的错误。

因为我是在Android Studio中新建了一个module,然后再把actionbarsherlock里面的资源和代码放进新的module中的。
新建的module中的build.gradle中默认带有 com.android.support:appcompat-v7:23.4.0

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
}

错误是因为此导入的库和actionbarsherlock中的attr属性有冲突导致的。
解决问题方法
删掉 com.android.support:appcompat-v7:23.4.0 ,
改为:com.google.android.gms:play-services:7.0.0
如:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.google.android.gms:play-services:7.0.0'
}

重新clear项目,然后rebuild.


bug four:android studio没有org.apache.http.client.HttpClient包

刚到新的公司,负责ERP手持终端开发,在导入Eclipse的demo时,由于使用的是apache的http做网络请求,Android studio发现没有办法引用apache的包,效果如下:
这里写图片描述
解决方案:
这里写图片描述
这里写图片描述
按照以上步骤,效果如下:
这里写图片描述


bug five:transformResourcesWithMergeJavaResForDebug FAILED

Error:Execution failed for task ‘:erpdemo1:transformResourcesWithMergeJavaResForDebug’.

com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/DEPENDENCIES
File1: F:\program\siwen_pro\MyDemop2\erpdemo1\libs\xmlrpc-client-3.1.3.jar
File2: F:\program\siwen_pro\MyDemop2\erpdemo1\libs\xmlrpc-common-3.1.3.jar
File3: F:\program\siwen_pro\MyDemop2\erpdemo1\libs\xmlrpc-server-3.1.3.jar

packagingOptions {
    exclude 'META-INF/NOTICE' // will not include NOTICE file
    exclude 'META-INF/LICENSE' // will not include LICENSE file
}
packagingOptions{
    exclude'META-INF/DEPENDENCIES.txt'
    exclude'META-INF/LICENSE.txt'
    exclude'META-INF/NOTICE.txt'
    exclude'META-INF/NOTICE'
    exclude'META-INF/LICENSE'
    exclude'META-INF/DEPENDENCIES'
    exclude'META-INF/notice.txt'
    exclude'META-INF/license.txt'
    exclude'META-INF/dependencies.txt'
    exclude'META-INF/LGPL2.1'
}

提示什么加什么,最后能解决
http://blog.csdn.net/zhangtian6691844/article/details/51065352


bug six:Execution failed for task ‘:app:clean’

Unable to delete directory: F:\rbu\Erp_rms\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7

解决方案
方案1:
在app Module的build.gradle中添加一段代码:

task clean(type: Delete) {
delete rootProject.buildDir
}
这里写图片

方案2:
这里写图片描述


bug seven:ClassLoader referenced unknown path: /data/app/com.rbu.erp_rms-1/lib/arm64

com.rbu.erp_rms W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable

解决方案:
android studio 2.0中使用了instant run功能,把这个功能关闭就ok了。因为instant run本身的机制影响了一些classloader的加载。


bug eight:Theme.AppCompat无全屏主题

V7包中的Theme.AppCompat主题系列中并没有全屏样式,只定义样式
解决方案:

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

bug nine:AAPT err(Facade for): libpng error: Not a PNG file

在导入项目到Android studio后,若编译出现“AAPT err(Facade for): libpng error: Not a PNG file”错误。
该错误表示项目中的drawable下的图片文件有非png图片,命名为png造成的。

解决方案
方案1
在模块下的build.gradle中配置下面两个信息,再clear project。
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
这里写图片描述
方案2
在android studio中,依次点开后缀为png的图片,可以查看到图片的文件信息,如下图,将不为png的图片另存为png图片或者修改图片后缀为对应的图片格式。
这里写图片描述


bug ten:A problem occurred configuring project ‘:demo’

Could not resolve all dependencies for configuration ‘:demo:_debugCompile’.
Could not find com.android.support.constraint:constraint-layout:1.0.1.
Searched in the following locations:
file:/D:/Program Files/Android/Android Studio/gradle/m2repository/com/android/support/constraint/constraint-layout/1.0.1/constraint-layout-1.0.1.pom
file:/D:/Program Files/Android/Android Studio/gradle/m2repository/com/android/support/constraint/constraint-layout/1.0.1/constraint-layout-1.0.1.jar
https://jcenter.bintray.com/com/android/support/constraint/constraint-layout/1.0.1/constraint-layout-1.0.1.pom
https://jcenter.bintray.com/com/android/support/constraint/constraint-layout/1.0.1/constraint-layout-1.0.1.jar
file:/E:/software/android/android-sdk-studio/extras/android/m2repository/com/android/support/constraint/constraint-layout/1.0.1/constraint-layout-1.0.1.pom
file:/E:/software/android/android-sdk-studio/extras/android/m2repository/com/android/support/constraint/constraint-layout/1.0.1/constraint-layout-1.0.1.jar
file:/E:/software/android/android-sdk-studio/extras/google/m2repository/com/android/support/constraint/constraint-layout/1.0.1/constraint-layout-1.0.1.pom
file:/E:/software/android/android-sdk-studio/extras/google/m2repository/com/android/support/constraint/constraint-layout/1.0.1/constraint-layout-1.0.1.jar
Required by:
SiwenDemo:demo:unspecified

解决方案:
工具栏上选择 Tools –> Android –>SDK Manager 切换到SDK Tools选项
  在右下角处勾选 Show Package Details,
  在Support Repository下的ConstraintLayout for Android 和 Solver for ConstraintLayout 中选中自己需要的版本(gradle中依赖的版本)
这里写图片描述

搞定!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值