Meituan-Dianping / Meituan-Dianping/Robust

打包异常

Open
#444 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
4.5k
Forks
806
PR merge metrics
No merged PRs in 30d

Description

在提交issue之前,我们应该先查询是否已经有相关的issue和ReadMe中的注意事项,比如说Robust在0.3.3版本才支持windows开发。提交issue时,我们需要写明issue的原因,最好可以携带编译或运行过程的日志或者截图。issue最好以下面的格式提出:

异常类型:编译异常

手机型号:编译异常

手机系统版本:编译异常

Robust版本:0.4.99

Gradle版本:6.5
dependencies {
classpath "com.android.tools.build:gradle:4.1.0"

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    classpath 'com.meituan.robust:gradle-plugin:0.4.99'
    classpath 'com.meituan.robust:auto-patch-plugin:0.4.99'
}

系统:Windows

堆栈/日志:Caused by: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'task ':app:packageR
elease' property 'resourceFiles'' with class 'org.gradle.api.internal.file.DefaultFilePropertyFactory$DefaultDir
ectoryVar' to class 'java.io.File'

To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/6.5/userguide/gradle_daemon.html.
Daemon will be stopped at the end of the build stopping after processing

Configure project :app
Register robust transform successful !!!

Task :clean
Task :app:clean
Task :app:preBuild UP-TO-DATE
Task :app:extractProguardFiles
Task :app:preReleaseBuild
Task :app:compileReleaseAidl NO-SOURCE
Task :app:compileReleaseRenderscript NO-SOURCE
Task :app:generateReleaseBuildConfig
Task :app:javaPreCompileRelease
Task :app:checkReleaseAarMetadata
Task :app:generateReleaseResValues
Task :app:generateReleaseResources
Task :app:createReleaseCompatibleScreenManifests
Task :app:extractDeepLinksRelease
Task :app:processReleaseMainManifest
Task :app:mergeReleaseResources
Task :app:processReleaseManifest
Task :app:processReleaseManifestForPackage
Task :app:processReleaseResources

Task :app:compileReleaseJavaWithJavac

Task :app:compileReleaseSources
Task :app:mergeReleaseNativeDebugMetadata NO-SOURCE
Task :app:mergeReleaseShaders
Task :app:lintVitalRelease
Task :app:compileReleaseShaders NO-SOURCE
Task :app:generateReleaseAssets UP-TO-DATE
Task :app:mergeReleaseAssets
Task :app:compressReleaseAssets
Task :app:mergeReleaseGeneratedProguardFiles UP-TO-DATE
Task :app:processReleaseJavaRes NO-SOURCE
Task :app:checkReleaseDuplicateClasses
Task :app:mergeReleaseJavaResource

Task :app:transformClassesWithRobustForRelease
================robust start================
read all class file cost 0.249 second
===robust print id start===
key is com.meituan.sample.MainActivity.onCreate(android.os.Bundle) value is 1
key is com.meituan.sample.MainActivity.isGrantSDCardReadPermission() value is 2
key is com.meituan.sample.MainActivity.requestPermission() value is 3
key is com.meituan.sample.MainActivity.onRequestPermissionsResult(int,java.lang.String[],int[]) value is 4
key is com.meituan.sample.MainActivity.handlePermissionResult() value is 5
key is com.meituan.sample.MainActivity.runRobust() value is 6
key is com.meituan.sample.MainActivity.access$000(com.meituan.sample.MainActivity) value is 7
key is com.meituan.sample.MainActivity.access$100(com.meituan.sample.MainActivity) value is 8
key is com.meituan.sample.MainActivity.access$200(com.meituan.sample.MainActivity) value is 9
key is com.meituan.sample.MainActivity$1.onClick(android.view.View) value is 10
key is com.meituan.sample.MainActivity$2.onClick(android.view.View) value is 11
key is com.meituan.sample.MainActivity$3.onClick(android.view.View) value is 12
key is com.meituan.sample.PatchManipulateImp.fetchPatchList(android.content.Context) value is 13
key is com.meituan.sample.PatchManipulateImp.verifyPatch(android.content.Context,com.meituan.robust.Patch) value is 14
key is com.meituan.sample.PatchManipulateImp.copy(java.lang.String,java.lang.String) value is 15
key is com.meituan.sample.PermissionUtils.checkSelfPermission(android.content.Context,java.lang.String) value is 16
key is com.meituan.sample.PermissionUtils.isGrantSDCardReadPermission(android.content.Context) value is 17
key is com.meituan.sample.PermissionUtils.requestSDCardReadPermission(android.app.Activity,int) value is 18
key is com.meituan.sample.RobustCallBackSample.onPatchListFetched(boolean,boolean,java.util.List) value is 19
key is com.meituan.sample.RobustCallBackSample.onPatchFetched(boolean,boolean,com.meituan.robust.Patch) value is 20
key is com.meituan.sample.RobustCallBackSample.onPatchApplied(boolean,com.meituan.robust.Patch) value is 21
key is com.meituan.sample.RobustCallBackSample.logNotify(java.lang.String,java.lang.String) value is 22
key is com.meituan.sample.RobustCallBackSample.exceptionNotify(java.lang.Throwable,java.lang.String) value is 23
key is com.meituan.sample.SecondActivity.onCreate(android.os.Bundle) value is 24
key is com.meituan.sample.SecondActivity.getTextInfo() value is 25
key is com.meituan.sample.SecondActivity.onCreateView(java.lang.String,android.content.Context,android.util.AttributeSet) value is 26
key is com.meituan.sample.SecondActivity.onClick(android.view.View) value is 27
key is com.meituan.sample.SecondActivity.getReflectField(java.lang.String,java.lang.Object) value is 28
key is com.meituan.sample.SecondActivity.getFieldValue(java.lang.String,java.lang.Object) value is 29
key is com.meituan.sample.SecondActivity.printLog(java.lang.String,java.lang.String[][]) value is 30
key is com.meituan.sample.SecondActivity.lambda$onCreate$0(android.view.View) value is 31
===robust print id end===
robust cost 2.705 second
================robust end================

Task :app:minifyReleaseWithR8
Task :app:collectReleaseDependencies
Task :app:sdkReleaseDependencyData
Task :app:mergeReleaseJniLibFolders
Task :app:validateSigningRelease
Task :app:mergeReleaseNativeLibs
Task :app:stripReleaseDebugSymbols NO-SOURCE
Task :app:packageRelease FAILED
30 actionable tasks: 29 executed, 1 up-to-date

如是编译异常,请在执行gradle命令时,加上--stacktrace,并把结果重定向,例如在demo中重定向命令如下:./gradlew clean assembleRelease --stacktrace --no-daemon >log.txt ,结果重定向到当前的目录下的log.txt文件;
日志中我们需要过滤"robust"关键字,可以初步查找问题的大概原因;
Robust提供了sample样例与我们的源码,大家在使用前可以先将样例跑通,如遇任何疑问也欢迎大家提出,更鼓励大家给我们提pr,谢谢大家的支持.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the demo's Android build configuration and reproduce the packageRelease failure using the reported Robust 0.4.99, Gradle 6.5, Android Gradle plugin 4.1.0, and Windows setup. Run ./gradlew clean assembleRelease --stacktrace --no-daemon and inspect the log around the resourceFiles GroovyCastException and packageRelease task; done means the release package completes successfully or the compatibility limitation is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, groovy, java
Domain
build-system, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.