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

Android库:释放. aar在使用proGuard时classes.jar空

陆俊智
2023-03-14

我正在尝试生成一个启用了minifytrue的库,但是在版本中。啊,上课。罐子快空了。

我已经检查了我的程序规则。而且看起来还不错。

我甚至用默认设置创建了一个新模块。gradle文件,当我将minifyEnable设置为true时,发布版本仍然会获得类。里面没有类的jar。

毕竟,有可能生成一个混淆代码的android库吗?

编辑1:添加模块生成。格拉德尔

apply plugin: 'com.android.library'

android {
    compileSdkVersion 27
    buildToolsVersion '27.0.0'

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

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

    lintOptions {
        abortOnError false
    }
}

repositories {
    maven { url 'https://maven.google.com' }
    jcenter()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:3.0.1', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    compile 'org.apache.httpcomponents:httpcore:4.3.3'
    compile('org.apache.httpcomponents:httpmime:4.3.6') {
        exclude module: 'httpclient'
    }

    compile 'fr.bmartel:jspeedtest:1.25'
    compile "com.android.support:appcompat-v7:27.0.0"
    testCompile 'junit:junit:4.12'
}

共有1个答案

公西俊民
2023-03-14

好的,过了一段时间我解决了我的问题。

我复制/粘贴一个默认的proGuard规则配置(library.pro)到我的proguard-rules.pro.你可以找到这个文件和更多的例子路径到你的sdk/工具/proGuard/例子。

有关更多信息,请阅读此。

在我的build.gradle,我查根:

defaultConfig {
    minSdkVersion 15
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

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

致:

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {
     release {
         minifyEnabled true
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         consumerProguardFiles 'proguard-rules.pro' //added this line
     }
 }

谢谢你的帮助!

 类似资料:
  • 在build/brexand-bundles中找到的实际classes.jar文件不是空的。 我尝试清理项目。我想这将导致所有的依赖被删除并重新下载。然而,在此之后,Android Studio仍然无法在StickyListHeaders的classes.jar中找到任何类。 到目前为止,这个问题只对Se.EmilsJolander的库存在。奇怪的是,这个post1的回答者发布了一张截图,显示他确

  • 我看到了所有这些,所以也遵循了给出的几个步骤,但我无法解决这个问题。奇怪的是,我仍然有这个问题: 当我尝试构建我的项目时,出现1个错误和176个警告。 这是我的proguard文件: 我的build.gradle档案: 我如何解决这个问题?

  • 我有一个gradle android库模块,它依赖于另一个项目android库: androidlib-a依赖项 从3.3.0升级到android build tools 3.5.0后,在配置阶段引发以下异常: 错误:无法确定任务“:androidlib-a:lint”的依赖关系。无法解析配置的所有项目:androidlib-a:ReleaseComileClassPath”。未能将工件“andr

  • 我正在使用Gradle插件0.9和Android Studio 0.5.4。 我有一个Android库项目,只有一个依赖项。jar位于/libs文件夹中。当我在Proguard激活的情况下运行AssemblerRelease任务时,生成的AAR具有以下结构: 我的图书馆 问题是myJar。jar类被合并到类中。jar by Proguard(当我在没有Proguard的情况下运行时,它不会发生)。

  • 我在Android中的Proguard文件有一个错误。 -加注-加注-加注-加注-加注-加注 -libraryjars/home/jorider/wul4/adt-android/sdk/platforms/android-17/android.jar-libraryjars/home/jorider/wul4/adt-android/sdk/extras/android/support/v4/a

  • 我已经更新到新的adt 可悲的是,做了一些改变,我找不到任何关于如何使用它们的信息。谈论ProGuard的官网链接(在Android网站中)仍然谈论旧的方式。 他们在“project.properties”上写下,取消注释下一行: 这不起作用,尝试导出时会出现以下错误: 有人能帮我吗?我以前从来没有改变过proguard.cfg文件,一切都是自动的。我很少做这样的事。 他们还添加了一个文件prog