当前位置: 首页 > 知识库问答 >
问题:

Android-如何消除这些gradle/proguard警告?

蓬长恨
2023-03-14

已经在proguard-rules.pro上尝试了
-keepattributes cunclosingmethod和-dontwarn innerclasses
,但没有成功:(
你们有什么提示吗?

分级文件(主要部分):

apply plugin: 'com.android.application'
apply plugin: 'jacoco'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    dexOptions{
        maxProcessCount 3
        javaMaxHeapSize "2g"
    }

    defaultConfig {
        applicationId "com.xyz"
        minSdkVersion 19
        targetSdkVersion 22
        versionCode 1
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        multiDexEnabled true
    }

    buildTypes {
        debug {
            debuggable true
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    testOptions {
        unitTests.returnDefaultValues = true
    }

    task jacocoTestReport(type: JacocoReport, dependsOn: "test"){

        group = "Reporting"
        description = "Generate Jacoco coverage reports after running tests."

        reports {
            xml.enabled = true
            html.enabled = true
        }

        classDirectories = fileTree(
                dir: "./build/intermediates/classes/debug",
                excludes: [ '**/R*.class',
                            '**/*$InjectAdapter.class',
                            '**/*$ModuleAdapter.class',
                            '**/*$ViewInjector.class']
        )

        def coverageSourceDirs = [
                "src/main/java"
        ]

        sourceDirectories = files(coverageSourceDirs)
        executionData = files("${project.buildDir}/jacoco/${jacocoTestReport}.exec")
    }

    productFlavors {
        xyz {
            applicationId "com.xyz"
            versionName "1.2"
            resValue "string", "app_name", "xyz"
            versionCode "1"
        }
    }
    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'
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
    testCompile fileTree(include: ['*.jar'], dir: 'libs/testLibs')
    testCompile 'junit:junit:4.12'
    androidTestCompile fileTree(include: ['*.jar'], dir: 'libs/androidTestLibs')
    androidTestCompile 'com.android.support:support-annotations:23.4.0'
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'org.mockito:mockito-core:1.10.19'
    compile 'me.dm7.barcodescanner:zxing:1.8.4'
    compile 'com.google.code.gson:gson:2.4'
    compile files('libs/zip4j_1.3.2.jar')
}


android.applicationVariants.all { variant ->
    variant.javaCompile.options.compilerArgs += [
            '-AresourcePackageName=com.xyz'
    ]
}

java-version&&javac-version
java version“1.7.0_71”
java(TM)SE运行时环境(构建1.7.0_71-B14)
java HotSpot(TM)64位服务器VM(构建24.71-B01,混合模式)
javac 1.7.0_71

共有1个答案

何建中
2023-03-14

请改用这行:

-keepattributes InnerClasses,EnclosingMethod,Signature

本期与本帖类似。基本上,您只需要将这一行添加到proguard-rules.pro文件中:

-keepattributes EnclosingMethod
 类似资料:
  • 我收到这些警告消息,但我不确定如何修复: 02-14 14:01:15.255:I/DalVikVM(10677):找不到方法Android.View.ViewGroup.OnStopnestedScroll,从方法Android.Support.v7.Internal.Widget.ActionBarOverLayLayout.OnStopnestedScroll引用 02-14 14:01:1

  • 我是一个新手android应用程序程序员,刚刚开始编写游戏。我最近发现了一个视频,其中一个红色的方块应该出现,并允许被拖动。我确定了这一点,并准确地复制了代码。以下是所有代码: 主要活动: 游戏面板: 游戏对象: RectPlayer: 主线程: 现在我仔细检查了这段代码,它对视频中的人有效。当我尝试运行它时,(我使用的是android studio),模拟器会弹出并显示手机的主屏幕。这就像应用程

  • C:\Users\Admin\anaconda3\lib\site packages\ipykernel\u启动器。py:7:SettingWithCopyWarning:试图在数据帧切片的副本上设置值 请参阅留档中的注意事项:https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view

  • 如何从没有主键的表中删除满足几个条件的行?(实际上主键由每一列组成) 经过多次尝试后,我有了一段代码,它首先创建一个临时表,在其中插入我想删除的行,最后我尝试从原始表中删除那些与临时表相比符合条件的行。 但是它给了我一个关于不能链接几个部分标识符#temp.idCarga的错误 也许这很容易,但是我已经尝试了这么多时间,我无法正常集中注意力。

  • 问题内容: 我的文件夹包含单元测试和功能测试。功能测试的类路径中有单词,而单元测试中没有。那么,如何仅运行单元测试? 非常感谢你。 PS :我知道很容易使用“包含”逻辑来选择测试。例如,仅在我的情况下运行功能测试,我可以简单地使用此功能。 但是,我不知道如何以简单的方式排除测试。 顺便说一句,我正在使用gradle 1.11。 问题答案: 任务的文档通过一个示例和所有内容对其进行了说明:

  • 对于从Spring Boot API发送的每个查询,我都会收到以下警告消息,并希望将其从日志中删除。 我正在使用RestHighLevelClient。根据Elasticsearch的说法,这可以通过迁移到他们最近推出的Elasticsearch Java API客户端来解决。然而,这将需要很长时间才能让我们做出这样的改变。 Elasticsearch版本是7.14.1,不幸的是,我们无法升级它。