Task to upload shared object mapping files to Bugsnag. Reads meta-data tags from the project's AndroidManifest.xml to extract a build UUID (injected by BugsnagManifestTask) and a Bugsnag API Key: https://developer.android.com/guide/topics/manifest/manifest-intro.html https://developer.android.com/guide/topics/manifest/meta-data-element.html This task must be called after shared object files are generated, so it is usually safe to have this be the absolute last task executed during a build.
| Fields inherited from class | Fields |
|---|---|
class org.gradle.api.DefaultTask |
TASK_NAME, TASK_DESCRIPTION, TASK_GROUP, TASK_TYPE, TASK_DEPENDS_ON, TASK_OVERWRITE, TASK_ACTION |
| Type | Name and description |
|---|---|
java.io.File |
projectDir |
java.io.File |
rootDir |
java.lang.String |
sharedObjectPath |
java.io.File |
symbolPath |
java.lang.String |
variantName |
| Constructor and description |
|---|
BugsnagUploadNdkTask
() |
| Type Params | Return Type | Name and description |
|---|---|---|
|
static java.io.File |
calculateObjDumpLocation(java.lang.String ndkDir, Abi abi, java.lang.String osName) |
|
static java.lang.String |
calculateOsName() |
|
java.io.File |
createSymbolsForSharedObject(java.io.File sharedObject, java.lang.String arch)Uses objdump to create a symbols file for the given shared object file |
|
static java.io.File |
findObjDump(org.gradle.api.Project project, java.lang.String arch) |
|
void |
findSharedObjectFiles(java.io.File dir, groovy.lang.Closure processor)Searches the subdirectories of a given path and executes a block on any shared object files |
|
java.io.File |
getObjDumpExecutable(java.lang.String arch)Gets the path to the objdump executable to use to get symbols from a shared object |
|
static void |
outputZipFile(java.io.InputStream stdout, java.io.File outputFile)Outputs the contents of stdout into the gzip file output file |
|
java.lang.Object |
upload() |
|
void |
uploadSymbols(java.io.File mappingFile, java.lang.String arch, java.lang.String sharedObjectName)Uploads the given shared object mapping information |
| Methods inherited from class | Name |
|---|---|
class BugsnagMultiPartUploadTask |
addPropertiesToMultipartEntity, getRetryCount, uploadMultipartEntity, uploadToServer |
class BugsnagVariantOutputTask |
getApiKey, getManifestPath, getVersionCode, getVersionName, readManifestFile |
class org.gradle.api.DefaultTask |
org.gradle.api.DefaultTask#setProperty(java.lang.String, java.lang.Object), org.gradle.api.DefaultTask#toString(), org.gradle.api.DefaultTask#compareTo(org.gradle.api.Task), org.gradle.api.DefaultTask#compareTo(java.lang.Object), org.gradle.api.DefaultTask#getName(), org.gradle.api.DefaultTask#execute(), org.gradle.api.DefaultTask#getActions(), org.gradle.api.DefaultTask#getState(), org.gradle.api.DefaultTask#getState(), org.gradle.api.DefaultTask#getPath(), org.gradle.api.DefaultTask#getExtensions(), org.gradle.api.DefaultTask#setEnabled(boolean), org.gradle.api.DefaultTask#setDescription(java.lang.String), org.gradle.api.DefaultTask#isEnabled(), org.gradle.api.DefaultTask#configure(groovy.lang.Closure), org.gradle.api.DefaultTask#configure(groovy.lang.Closure), org.gradle.api.DefaultTask#property(java.lang.String), org.gradle.api.DefaultTask#getDescription(), org.gradle.api.DefaultTask#getProject(), org.gradle.api.DefaultTask#getAnt(), org.gradle.api.DefaultTask#setGroup(java.lang.String), org.gradle.api.DefaultTask#getStandardOutputCapture(), org.gradle.api.DefaultTask#getIdentityPath(), org.gradle.api.DefaultTask#getConvention(), org.gradle.api.DefaultTask#getLogging(), org.gradle.api.DefaultTask#getLogging(), org.gradle.api.DefaultTask#leftShift(groovy.lang.Closure), org.gradle.api.DefaultTask#getLogger(), org.gradle.api.DefaultTask#hasProperty(java.lang.String), org.gradle.api.DefaultTask#getGroup(), org.gradle.api.DefaultTask#getInputs(), org.gradle.api.DefaultTask#getInputs(), org.gradle.api.DefaultTask#doLast(groovy.lang.Closure), org.gradle.api.DefaultTask#doLast(java.lang.String, org.gradle.api.Action), org.gradle.api.DefaultTask#doLast(org.gradle.api.Action), org.gradle.api.DefaultTask#onlyIf(groovy.lang.Closure), org.gradle.api.DefaultTask#onlyIf(org.gradle.api.specs.Spec), org.gradle.api.DefaultTask#doFirst(groovy.lang.Closure), org.gradle.api.DefaultTask#doFirst(org.gradle.api.Action), org.gradle.api.DefaultTask#doFirst(java.lang.String, org.gradle.api.Action), org.gradle.api.DefaultTask#setActions(java.util.List), org.gradle.api.DefaultTask#getTaskDependencies(), org.gradle.api.DefaultTask#getTaskDependencies(), org.gradle.api.DefaultTask#getDependsOn(), org.gradle.api.DefaultTask#setDependsOn(java.lang.Iterable), org.gradle.api.DefaultTask#dependsOn([Ljava.lang.Object;), org.gradle.api.DefaultTask#setOnlyIf(org.gradle.api.specs.Spec), org.gradle.api.DefaultTask#setOnlyIf(groovy.lang.Closure), org.gradle.api.DefaultTask#setDidWork(boolean), org.gradle.api.DefaultTask#getDidWork(), org.gradle.api.DefaultTask#deleteAllActions(), org.gradle.api.DefaultTask#getEnabled(), org.gradle.api.DefaultTask#dependsOnTaskDidWork(), org.gradle.api.DefaultTask#getOutputs(), org.gradle.api.DefaultTask#getOutputs(), org.gradle.api.DefaultTask#getDestroyables(), org.gradle.api.DefaultTask#getLocalState(), org.gradle.api.DefaultTask#getTemporaryDir(), org.gradle.api.DefaultTask#mustRunAfter([Ljava.lang.Object;), org.gradle.api.DefaultTask#setMustRunAfter(java.lang.Iterable), org.gradle.api.DefaultTask#getMustRunAfter(), org.gradle.api.DefaultTask#finalizedBy([Ljava.lang.Object;), org.gradle.api.DefaultTask#setFinalizedBy(java.lang.Iterable), org.gradle.api.DefaultTask#getFinalizedBy(), org.gradle.api.DefaultTask#shouldRunAfter([Ljava.lang.Object;), org.gradle.api.DefaultTask#setShouldRunAfter(java.lang.Iterable), org.gradle.api.DefaultTask#getShouldRunAfter(), org.gradle.api.DefaultTask#getAsDynamicObject(), org.gradle.api.DefaultTask#prependParallelSafeAction(org.gradle.api.Action), org.gradle.api.DefaultTask#appendParallelSafeAction(org.gradle.api.Action), org.gradle.api.DefaultTask#injectIntoNewInstance(org.gradle.api.internal.project.ProjectInternal, java.lang.String, java.lang.Class, java.util.concurrent.Callable), org.gradle.api.DefaultTask#getOnlyIf(), org.gradle.api.DefaultTask#getImpliesSubProjects(), org.gradle.api.DefaultTask#setImpliesSubProjects(boolean), org.gradle.api.DefaultTask#getExecuter(), org.gradle.api.DefaultTask#setExecuter(org.gradle.api.internal.tasks.TaskExecuter), org.gradle.api.DefaultTask#getTemporaryDirFactory(), org.gradle.api.DefaultTask#addValidator(org.gradle.api.internal.tasks.execution.TaskValidator), org.gradle.api.DefaultTask#getValidators(), org.gradle.api.DefaultTask#getTaskActions(), org.gradle.api.DefaultTask#isHasCustomActions(), org.gradle.api.DefaultTask#wait(long, int), org.gradle.api.DefaultTask#wait(long), org.gradle.api.DefaultTask#wait(), org.gradle.api.DefaultTask#equals(java.lang.Object), org.gradle.api.DefaultTask#hashCode(), org.gradle.api.DefaultTask#getClass(), org.gradle.api.DefaultTask#notify(), org.gradle.api.DefaultTask#notifyAll() |
Uses objdump to create a symbols file for the given shared object file
sharedObject - the shared object filearch - the arch of the fileSearches the subdirectories of a given path and executes a block on any shared object files
path - The parent path to search. Each subdirectory should
represent an architectureprocessor - a closure to execute on each parent directory and shared
object fileGets the path to the objdump executable to use to get symbols from a shared object
arch - The arch of the shared objectOutputs the contents of stdout into the gzip file output file
stdout - The input streamoutputFile - The output fileUploads the given shared object mapping information
mappingFile - the file to uploadarch - the arch that is being uploadedsharedObjectName - the original shared object nameGroovy Documentation