Proguard正在删除android库中覆盖的资源id

Proguard正在删除android库中覆盖的资源id,android,android-gradle-plugin,proguard,android-resources,android-proguard,Android,Android Gradle Plugin,Proguard,Android Resources,Android Proguard,我有一个带有LegendActivity的库,它使用layout legend.xml引用id为“icons”的视图。现在,在我的应用程序中,我用“AppLegendActivity”将此活动子类化,并使用应用程序的覆盖legend.xml,其中不包括任何id为“icons”的视图 图书馆 public class LegendActivity extends Activity { @Override public void onCreate(Bundle b) {

我有一个带有LegendActivity的库,它使用layout legend.xml引用id为“icons”的视图。现在,在我的应用程序中,我用“AppLegendActivity”将此活动子类化,并使用应用程序的覆盖legend.xml,其中不包括任何id为“icons”的视图

图书馆

public class LegendActivity extends Activity {

    @Override
    public void onCreate(Bundle b) {
        setContentView(R.layout.legend);

        View icons_view = findViewById(R.id.icons);
    }
}


<?xml version="1.0" encoding="utf-8"?>
   <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/icons"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</FrameLayout>
如果我在proguard中添加“-dontwarn”标志,我可以让应用程序编译,但一旦AppLegendActivity调用super.onCreate,就会调用对R.id.icons的引用,应用程序就会崩溃,原因是:

ava.lang.NoSuchFieldError: com.example.r.icons
应用程序的build.grade引用proguard部分:

buildTypes {
    release {
            // Proguard 
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
我的proguard-rules.pro

-dontwarn com.example.**

是否可以重新分解此代码以避免此崩溃?对我可以简单地重命名一些资源文件并消除冲突吗?当然但在实际的项目中,这要复杂得多,我不知道这种重构的含义有多大。有没有办法让库的R文件不删除/混淆应用程序覆盖资源后不再可见的ID?

AppLegendActivity
类中,您覆盖
LegendActivity
您需要更改
setContentView(R.layout…)或删除
super.onCreate(Bundle b)

是的,这是我提到的我不想做的重构。实际代码本身要复杂得多,因为这是一个库,由多个应用程序使用;这可能会产生意想不到的后果,我甚至还不知道。考虑到当前的代码,我正在寻找一种不使用proguard的方法,使其能够使用proguard加上一些配置。
buildTypes {
    release {
            // Proguard 
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
-dontwarn com.example.**