1

我正在尝试构建我的自定义 buildType,如下所示:

    beta {
        versionNameSuffix "-beta"
        debuggable true
    }

在调试版本中,一切正常,但是一旦我尝试构建发布版或测试版,就会出现此错误:

Error:(209, 27) No resource found that matches the given name (at 'icon' with value '@drawable/leak_canary_icon').
Error:(210, 28) No resource found that matches the given name (at 'label' with value '@string/leak_canary_display_activity_label').
Error:(212, 28) No resource found that matches the given name (at 'theme' with value '@style/leak_canary_LeakCanary.Base').
Error:java.lang.RuntimeException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Users/user/Library/Android/sdk/build-tools/24.0.2/aapt'' finished with non-zero exit value 1
Error:com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Users/user/Library/Android/sdk/build-tools/24.0.2/aapt'' finished with non-zero exit value 1
Error:org.gradle.process.internal.ExecException: Process 'command '/Users/user/Library/Android/sdk/build-tools/24.0.2/aapt'' finished with non-zero exit value 1

我看到合并的清单包含以下条目:

<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/leak_canary_LeakCanary.Base" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

我做错了什么?我已阅读常见问题解答部分并正确地将 betaCompile 条目包含到我的 gradle 文件中,所以现在看起来如下:

debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4'
betaCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4'

我试图清理/重建项目,但错误仍然存​​在。此外,如果我从应用程序中删除leakcanary代码并从gradle文件中删除依赖项,我仍然会收到此错误,这很奇怪,因为项目中根本不应该存在leakcanary。

有什么想法吗?

4

1 回答 1

2

我设法通过创建自定义图标 (res/drawable/leak_canary_icon.png)、自定义字符串 (leak_canary_display_activity_label) 和自定义主题来解决这个问题,这只是我的默认 apptheme 的子主题。字符串和主题的代码在这里:

在 res/values/styles.xml

<style name="leak_canary_LeakCanary.Base" parent="AppTheme"></style>

在 res/values/strings.xml

<string name="leak_canary_display_activity_label">Leaks view</string>

这使我能够构建应用程序,但我不确定它是否能完全解决问题。

于 2016-09-20T17:21:46.443 回答