使用LeakCanary时所遇问题

1.Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.

> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK project.properties
File1: E:\workSpace\LingFo\app\libs\Volley.jar
File2: E:\workSpace\LingFo\app\libs\leakcanary.jar

参考自:http://blog.csdn.net/zhouzme/article/details/18923293

解决:在build.gradle中添加代码:

android{

packagingOptions{

           exclude 'project.properties'
           exclude 'proguard-project.txt'
           exclude 'AndroidManifest.xml'
           exclude 'bin/AndroidManifest.xml'
        }

   }

上面exclude的文件是自己一次次build出来的;
 


 2.android.content.res.Resources$NotFoundException

参考自:http://blog.csdn.net/speedcoder/article/details/51388052

解决:除icon其他图片全部放到drawable的文件夹中;

参考自:http://blog.csdn.net/speedcoder/article/details/51388052




3.忘了报的什么错了 sorry......

解决:把以下添加到AndroidManifest.xml文件夹中

 
  <service android:name="com.squareup.leakcanary.internal.HeapAnalyzerService"
  android:enabled="false"
  android:process=":leakcanary" />
  <service
  android:name="com.squareup.leakcanary.DisplayLeakService"
  android:enabled="false" />
   
  <activity
  android:name="com.squareup.leakcanary.internal.DisplayLeakActivity"
  android:enabled="false"
  android:icon="@drawable/__leak_canary_icon"
  android:label="@string/__leak_canary_display_activity_label"
  android:taskAffinity="com.squareup.leakcanary"
  android:theme="@style/__LeakCanary.Base" >
  <intent-filter>
  <action android:name="android.intent.action.MAIN" />
   
  <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
  </activity>

参考自:http://blog.csdn.net/speedcoder/article/details/51388052
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LeakCanary是一个用于检测Android应用程序内存泄漏的开源库。它可以帮助开发者在开发和测试过程中快速发现和解决内存泄漏问题。 要使用LeakCanary,您需要在您的Android项目中添加以下依赖项(在您的build.gradle文件的dependencies部分): ``` debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.x.x' releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:2.x.x' ``` 接下来,在您的Application类中初始化LeakCanary: ```java public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); if (LeakCanary.isInAnalyzerProcess(this)) { // 这个进程是用于LeakCanary分析的,不执行LeakCanary的初始化操作 return; } LeakCanary.install(this); } } ``` LeakCanary会自动检测您的应用程序中的内存泄漏,并在检测到泄漏时提供详细的报告。当您运行应用程序时,如果发现内存泄漏,LeakCanary会在通知栏中显示一个通知,并在您的应用程序退出时显示一个通知。 通过分析LeakCanary提供的报告,您可以确定内存泄漏的原因,并采取相应的措施来解决问题,例如释放对象引用、取消注册监听器等。 请注意,LeakCanary仅在调试构建中生效,不会影响发布版本的性能。因此,在发布应用程序之前,请确保将LeakCanary从releaseImplementation更改为leakcanary-android-no-op。 希望这个简单的介绍对您有帮助!如果您有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值