moberwasserlechner / capacitor-filesharer

Capacitor plugin to download and share files for the Web, Android and iOS! Stop the war in Ukraine!
MIT License
82 stars 20 forks source link

Android: BUILD FAILED in 9s after upgrade #11

Closed renege closed 5 years ago

renege commented 5 years ago

After upgrading this happens in Android Studio when trying to generate the APK.

Executing tasks: [:app:bundleRelease]

> Configure project :app
google-services.json not found, google-services plugin not applied. Push Notifications won't work

> Configure project :capacitor-android
WARNING: API 'variant.getJavaCompiler()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
To determine what is calling variant.getJavaCompiler(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace.
WARNING: API 'variantOutput.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
To determine what is calling variantOutput.getPackageLibrary(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace.

> Task :app:preBuild UP-TO-DATE
> Task :byteowls-capacitor-filesharer:preBuild UP-TO-DATE
> Task :byteowls-capacitor-filesharer:preReleaseBuild UP-TO-DATE
> Task :byteowls-capacitor-filesharer:checkReleaseManifest
> Task :byteowls-capacitor-filesharer:processReleaseManifest
> Task :capacitor-android:preBuild UP-TO-DATE
> Task :capacitor-android:preReleaseBuild UP-TO-DATE
> Task :capacitor-android:checkReleaseManifest
> Task :capacitor-android:processReleaseManifest
> Task :capacitor-cordova-android-plugins:preBuild UP-TO-DATE
> Task :capacitor-cordova-android-plugins:preReleaseBuild UP-TO-DATE
> Task :capacitor-cordova-android-plugins:checkReleaseManifest
> Task :capacitor-cordova-android-plugins:processReleaseManifest
> Task :app:preReleaseBuild
> Task :byteowls-capacitor-filesharer:packageReleaseRenderscript NO-SOURCE
> Task :capacitor-cordova-android-plugins:packageReleaseRenderscript NO-SOURCE
> Task :app:compileReleaseRenderscript
> Task :app:generateReleaseResValues
> Task :app:generateReleaseResources
> Task :capacitor-android:packageReleaseRenderscript NO-SOURCE
> Task :byteowls-capacitor-filesharer:compileReleaseRenderscript
> Task :byteowls-capacitor-filesharer:generateReleaseResValues
> Task :byteowls-capacitor-filesharer:generateReleaseResources
> Task :byteowls-capacitor-filesharer:packageReleaseResources
> Task :capacitor-android:compileReleaseRenderscript
> Task :capacitor-android:generateReleaseResValues
> Task :capacitor-android:generateReleaseResources
> Task :capacitor-android:packageReleaseResources
> Task :capacitor-cordova-android-plugins:compileReleaseRenderscript
> Task :capacitor-cordova-android-plugins:generateReleaseResValues
> Task :capacitor-cordova-android-plugins:generateReleaseResources
> Task :capacitor-cordova-android-plugins:packageReleaseResources
> Task :app:mergeReleaseResources
> Task :app:checkReleaseManifest
> Task :app:createReleaseCompatibleScreenManifests
> Task :app:mainApkListPersistenceRelease
> Task :app:processReleaseManifest
> Task :app:bundleReleaseResources
> Task :app:mergeReleaseShaders
> Task :app:compileReleaseShaders
> Task :app:generateReleaseAssets
> Task :byteowls-capacitor-filesharer:mergeReleaseShaders
> Task :byteowls-capacitor-filesharer:compileReleaseShaders
> Task :byteowls-capacitor-filesharer:generateReleaseAssets
> Task :byteowls-capacitor-filesharer:packageReleaseAssets
> Task :capacitor-android:mergeReleaseShaders
> Task :capacitor-android:compileReleaseShaders
> Task :capacitor-android:generateReleaseAssets
> Task :capacitor-android:packageReleaseAssets
> Task :capacitor-cordova-android-plugins:mergeReleaseShaders
> Task :capacitor-cordova-android-plugins:compileReleaseShaders
> Task :capacitor-cordova-android-plugins:generateReleaseAssets
> Task :capacitor-cordova-android-plugins:packageReleaseAssets
> Task :app:mergeReleaseAssets
> Task :capacitor-android:compileReleaseAidl NO-SOURCE
> Task :byteowls-capacitor-filesharer:compileReleaseAidl NO-SOURCE
> Task :capacitor-cordova-android-plugins:compileReleaseAidl NO-SOURCE
> Task :app:compileReleaseAidl NO-SOURCE
> Task :app:generateReleaseBuildConfig
> Task :app:prepareLintJar UP-TO-DATE
> Task :app:generateReleaseSources
> Task :byteowls-capacitor-filesharer:generateReleaseBuildConfig
> Task :capacitor-android:generateReleaseRFile
> Task :byteowls-capacitor-filesharer:generateReleaseRFile
> Task :byteowls-capacitor-filesharer:prepareLintJar UP-TO-DATE
> Task :byteowls-capacitor-filesharer:generateReleaseSources
> Task :capacitor-android:generateReleaseBuildConfig
> Task :capacitor-android:prepareLintJar UP-TO-DATE
> Task :capacitor-android:generateReleaseSources
> Task :capacitor-android:javaPreCompileRelease

> Task :capacitor-android:compileReleaseJavaWithJavac
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :capacitor-android:processReleaseJavaRes NO-SOURCE
> Task :capacitor-android:transformClassesAndResourcesWithPrepareIntermediateJarsForRelease
> Task :byteowls-capacitor-filesharer:javaPreCompileRelease

> Task :byteowls-capacitor-filesharer:compileReleaseJavaWithJavac
Note: /Users/yser/Code/foobar/app/node_modules/@byteowls/capacitor-filesharer/android/src/main/java/com/byteowls/capacitor/filesharer/ConfigUtils.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

> Task :byteowls-capacitor-filesharer:processReleaseJavaRes NO-SOURCE
> Task :byteowls-capacitor-filesharer:transformClassesAndResourcesWithPrepareIntermediateJarsForRelease
> Task :capacitor-cordova-android-plugins:generateReleaseBuildConfig
> Task :capacitor-cordova-android-plugins:generateReleaseRFile
> Task :capacitor-cordova-android-plugins:prepareLintJar UP-TO-DATE
> Task :capacitor-cordova-android-plugins:generateReleaseSources
> Task :capacitor-cordova-android-plugins:javaPreCompileRelease
> Task :capacitor-cordova-android-plugins:compileReleaseJavaWithJavac
> Task :capacitor-cordova-android-plugins:processReleaseJavaRes NO-SOURCE
> Task :capacitor-cordova-android-plugins:transformClassesAndResourcesWithPrepareIntermediateJarsForRelease
> Task :app:javaPreCompileRelease
> Task :app:processReleaseResources
> Task :app:compileReleaseJavaWithJavac
> Task :app:transformClassesWithDexBuilderForRelease
> Task :app:transformDexArchiveWithExternalLibsDexMergerForRelease
AGPBI: {"kind":"error","text":"Program type already present: com.getcapacitor.AndroidProtocolHandler","sources":[{}],"tool":"D8"}

> Task :app:transformDexArchiveWithDexMergerForRelease FAILED
java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: 
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: com.getcapacitor.AndroidProtocolHandler
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
    at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
    at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720)
    at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:407)
    at com.android.build.gradle.internal.transforms.DexMergerTransform.transform(DexMergerTransform.java:240)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
    at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
    at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
    at sun.reflect.GeneratedMethodAccessor328.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
    at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
    at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
    at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
    at org.gradle.execution.taskgraph.LocalTaskInfoExecutor.execute(LocalTaskInfoExecutor.java:42)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: 
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: com.getcapacitor.AndroidProtocolHandler
    at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1431)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: 
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: com.getcapacitor.AndroidProtocolHandler
    at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:131)
    at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:118)
    at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:102)
    at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:37)
    at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
    ... 4 more
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
    at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:70)
    at com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(ExceptionUtils.java:43)
    at com.android.tools.r8.D8.run(D8.java:94)
    at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:116)
    ... 7 more
Caused by: com.android.tools.r8.utils.AbortException: Error: Program type already present: com.getcapacitor.AndroidProtocolHandler
    at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:89)
    at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:60)
    at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:64)
    ... 10 more

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformDexArchiveWithDexMergerForRelease'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: 
  Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
  Program type already present: com.getcapacitor.AndroidProtocolHandler

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/4.10.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 9s
62 actionable tasks: 58 executed, 4 up-to-date
renege commented 5 years ago

@moberwasserlechner

> Task :byteowls-capacitor-filesharer:compileReleaseJavaWithJavac
Note: /Users/xxx/Code/foobar/app/node_modules/@byteowls/capacitor-filesharer/android/src/main/java/com/byteowls/capacitor/filesharer/ConfigUtils.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
moberwasserlechner commented 5 years ago

This is just a warning. Don't worry about it.

Please share your versions (Cap, Android, Plugin) and your plugin config.

renege commented 5 years ago

What is the correct plugin config? What dependency to use in build.gradle for the capacitor-android version? Think that's the issue here @moberwasserlechner

moberwasserlechner commented 5 years ago

Then please share your build.gradle and your version of Capacitor. I'm not able to help if you donot provide that information.

renege commented 5 years ago
apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "foo.bar.foo"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 6
        versionName "1.0.2"
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    maven {
        url  "https://dl.bintray.com/ionic-team/capacitor"
    }
    flatDir{
        dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs'
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'

    implementation 'ionic-team:capacitor-android:1.0.0-beta.17'

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation project(':capacitor-cordova-android-plugins')
}

apply from: 'capacitor.build.gradle'

try {
    def servicesJSON = file('google-services.json')
    if (servicesJSON.text) {
        apply plugin: 'com.google.gms.google-services'
    }
} catch(Exception e) {
    logger.warn("google-services.json not found, google-services plugin not applied. Push Notifications won't work")
}
moberwasserlechner commented 5 years ago

So you're using Capacitor beta17 but the plugin needs at least 1.0.0. See readme.

Please look at a current Capacitor project and upgrade. You need to remove at least mplementation 'ionic-team:capacitor-android:1.0.0-beta.17'. But upgrading your app is out of scope.

moberwasserlechner commented 5 years ago

It seems that the issue was not related to the plugin. Plugin needs Capacitor 1.0.0+.