Giter Club home page Giter Club logo

excludeaar's People

Contributors

ssiyy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

excludeaar's Issues

执行任务后,aar里面要过滤的包名是没看到了,但是点击as “运行”按钮,出现:Duplicate class cn.sirius.nga.BuildConfig found in modules jetified-exclude_GDTSDK_unionNormal-runtime.jar (exclude_GDTSDK_unionNormal.aar) and jetified-XXX_sdk_v3.1.0-runtime.jar (:XXX_sdk_v3.1.0:)

作者你好,我集成了你的开源库,执行任务后,aar里面要过滤的包名是没看到了,但是点击as “运行”按钮,出现:Duplicate class cn.sirius.nga.BuildConfig found in modules jetified-exclude_GDTSDK_unionNormal-runtime.jar (exclude_GDTSDK_unionNormal.aar) and jetified-XXX_sdk_v3.1.0-runtime.jar (:XXX_sdk_v3.1.0:)

image

先自动化检测主module跟放在libs/exclude文件夹内的aar文件之间存在的冲突包名,然后再过滤那些冲突的包名,这种该怎么实现呢?

楼主你好,有个问题想请教下:目前这个开源库是要先在

`
excludePluginExt {
autoDependencies = true //是否自动依赖即是否依赖过滤之后的架包
aars {
BaiduLBS_Android_debug { //过滤架包的名称
path "/libs/exclude/BaiduLBS_Android_debug.aar" //架包的路径
excludePackages 'com.baidu.location' //过滤的包名
}
}
jars{
BaiduLBS_Android_7_5_2{//过滤架包的名称
path "/libs/exclude/BaiduLBS_Android_7.5.2.jar" //架包的路径
excludePackages 'com.baidu.android','com.baidu.lbsapi' //过滤的包名
}

        map_baidu{//过滤架包的名称
            path "/libs/exclude/map-baidu.jar"//架包的路径
            excludePackages "io.dcloud.js.map.adapter"//过滤的包名
            excludeClasses "io.dcloud.js.map.IFMapDispose","io.dcloud.js.map.JsMapCircle","io.dcloud.js.map.MapJsUtil"//过滤的类名
        }
    }
}

`

这里声明要过滤的包名啥的,然后再执行指定的Task。如果要实现:先自动化检测主module跟放在libs/exclude文件夹内的aar文件之间存在的冲突包名,然后再过滤那些冲突的包名,这种该怎么实现呢?

编译不过

ERROR: Unable to resolve dependency for ':exclude-demo@debug/compileClasspath': Failed to transform file 'exclude_BaiduLBS_Android_debug.aar' to match attributes {artifactType=jar}

执行任务报错

Task :app:unZip_aar_DSAR_SDK
Execution optimizations have been disabled for task ':app:unZip_aar_DSAR_SDK' to ensure correctness due to the following reasons:

请问一下大佬,java.lang.NoClassDefFoundError 该怎么办

我通过在dependence里面增加这样的配置,剔除掉了重复的部分:


    excludePluginExt {
        autoDependencies = true
        aars {
            "VGame-Core-1220" {
                path "/libs/exclude/VGame-Core-1220.aar"
                excludePackages 'com.ss.android.a', 'com.ss.android.download', 'com.ss.android.downloadad', 'com.ss.android.downloadlib', 'com.ss.android.socialbase'
            }
        }
    }

然后编译成功了,运行时候失败,请问有什么办法可以搞定呢?

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/ss/android/downloadlib/addownload/GlobalInfo;
        at com.ss.union.game.sdk.common.download.GameDownloadManager.doInit(SourceFile:154)
        at com.ss.union.game.sdk.core.base.init.GameSdkCoreInit.init(SourceFile:69)
        at com.ss.union.game.sdk.core.base.init.a.f.doIt(SourceFile:17)

aar的使用方式是否需要修改

作者你好:

如果按照github项目中的方式来处理,那集成aar的方式就需要修改了吧,需要给每一个aar指定一个特定的configuration是么?感觉这样有点麻烦

能否直接根据aar的name来获取到aar文件路径呢?

需要导出为aar的library中需要导入另外的aar,应该如何配置?

现在有个比较特殊的需求,A.aar是放在library B中的,然后需要library B打包成B.aar给主项目用。要求A.aar的代码被flat到B中,而不是主项目直接引用A.aar。A.aar中有个so需要被去除,因为和主项目冲突了。
我使用demo的方法,去除倒的确是去除了,但是使用assembleRelease生成的B.aar里面代码结构很奇怪,主class.jar里面压缩了另外一个class.jar,里面就是A的代码。
image
导入时便会class not found了。
这个怎么解决呢?

构建时合并AndroidManifest.xml出现org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容

 Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDevDebugManifest'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
    ........  
Caused by: java.lang.RuntimeException: com.android.manifmerger.ManifestMerger2$MergeFailureException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
        at com.android.builder.core.AndroidBuilder.mergeManifestsForApplication(AndroidBuilder.java:548)
        at com.android.build.gradle.tasks.MergeManifests.doFullTaskAction(MergeManifests.java:173)
        at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:106)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
        ... 104 more
Caused by: com.android.manifmerger.ManifestMerger2$MergeFailureException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
        at com.android.manifmerger.ManifestMerger2.loadLibraries(ManifestMerger2.java:965)
        at com.android.manifmerger.ManifestMerger2.merge(ManifestMerger2.java:165)
        at com.android.manifmerger.ManifestMerger2.access$600(ManifestMerger2.java:61)
        at com.android.manifmerger.ManifestMerger2$Invoker.merge(ManifestMerger2.java:1542)
        at com.android.builder.core.AndroidBuilder.mergeManifestsForApplication(AndroidBuilder.java:508)
        ... 117 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
      
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
        at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1437)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:999)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:118)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327)
        at com.android.utils.PositionXmlParser.parse(PositionXmlParser.java:176)
        at com.android.utils.PositionXmlParser.parse(PositionXmlParser.java:139)
...

去除class的目的达到了,但是依赖之后无法正确构建打包

路径文件不存在

Execution failed for task ':unzipJar_SystemUISharedLib'.

Cannot expand ZIP '/libs/SystemUISharedLib.jar' as it does not exist.
跑了demo也是这样 是不能用了吗

请问下如果不想使用NamedDomainObjectContainer

excludePluginExt {
        aars {
            BaiduLBS_Android_debug { //过滤架包的名称
                implementation = false  //是否依赖过滤之后架包
                path "/libs/exclude/BaiduLBS_Android_debug.aar" //架包的路径
                excludePackages 'com.baidu.location' //过滤的包名
                excludeSos 'liblocSDK7b'
                excludeSoAbis 'x86'
            }
        }
        jars{
            BaiduLBS_Android_7_5_2{//过滤架包的名称
                path "/libs/exclude/BaiduLBS_Android_7.5.2.jar" //架包的路径
                excludePackages 'com.baidu.android','com.baidu.lbsapi' //过滤的包名
            }

            map_baidu{//过滤架包的名称
                path "/libs/exclude/map-baidu.jar"//架包的路径
                excludePackages "io.dcloud.js.map.adapter"//过滤的包名
                excludeClasses "io.dcloud.js.map.IFMapDispose","io.dcloud.js.map.JsMapCircle","io.dcloud.js.map.MapJsUtil"//过滤的类名
            }
        }
    }

如果想改成

excludePluginExt {
        aars {
        
                implementation = false  //是否依赖过滤之后架包
                path "/libs/exclude/BaiduLBS_Android_debug.aar" //架包的路径
                excludePackages 'com.baidu.location' //过滤的包名
                excludeSos 'liblocSDK7b'
                excludeSoAbis 'x86'
         
        }
}

这样的话,应该就不需要NamedDomainObjectContainer<>了吧?请问下应该怎么写这种

报错 Cannot add task 'unZip_jar_libchips' as a task with that name already exists.

报错 Cannot add task 'unZip_jar_libchips' as a task with that name already exists.

excludePluginExt {
aars {
BaiduLBS_Android_debug { //过滤架包的名称
implementation = false
path = "/libs/excludes/BaiduLBS_Android_debug.aar" //架包的路径
// excludeClasses 'com.example.library.BaiduLocationService'
excludePackages = ['com.baidu.android', 'com.baidu.lbsapi']
// excludeSos 'liblocSDK7b'
// excludeSoAbis 'x86'
}
}

jars{

// android_opt_datetimepicker{//过滤架包的名称
// path = "/libs/android-opt-datetimepicker.jar" //架包的路径
// excludePackages "android","androidx" //过滤的包名
// }
libchips{//过滤架包的名称
path = "/libs/excludes/libchips.jar"//架包的路径
excludePackages 'android.arch','android.support','androidx'//过滤的包名
// excludeClasses "io.dcloud.js.map.IFMapDispose","io.dcloud.js.map.JsMapCircle","io.dcloud.js.map.MapJsUtil"//过滤的类名
}
}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.