cli.catch.errμμ (/usr/local/lib/node_modules/cordova/bin/cordova:29:15)
~μ
process._tickCallbackμμ (λ΄λΆ/νλ‘μΈμ€/next_tick.js:189:7)
μλ
νμΈμ!
Cordova νλ¬κ·ΈμΈ add https://github.com/dpa99c/cordova-plugin-firebase#GH -1057-April-05-android-build-issueλ₯Ό ν΅ν΄ νλ¬κ·ΈμΈμ μ¬μ©ν λ μ΄ μ€λ₯κ° λ°μν©λλ€.
`cordova-android-support-gradle-release: Android νλ«νΌ: V7+
cordova-android-support-gradle-release: μ¬μ©μ μ μ λ²μ '27.+'λ₯Ό /home/aurumque/Cordova/luiscoba/platforms/android/app/build.gradleμ μμ±νμ΅λλ€.
cordova-android-support-gradle-release: μ¬μ©μ μ μ λ²μ '27.+'λ₯Ό /home/aurumque/Cordova/luiscoba/platforms/android/cordova-android-support-gradle-release/luiscoba-cordova-android-support-μ μμ±νμ΅λλ€. gradle-release.gradle
Android μ€νλμ€ νλ‘μ νΈκ° κ°μ§λμμ΅λλ€.
cordova-android-support-gradle-release: Android νλ«νΌ: V7+
cordova-android-support-gradle-release: μ¬μ©μ μ μ λ²μ '27.+'λ₯Ό /home/aurumque/Cordova/luiscoba/platforms/android/app/build.gradleμ μμ±νμ΅λλ€.
cordova-android-support-gradle-release: μ¬μ©μ μ μ λ²μ '27.+'λ₯Ό /home/aurumque/Cordova/luiscoba/platforms/android/cordova-android-support-gradle-release/luiscoba-cordova-android-support-μ μμ±νμ΅λλ€. gradle-release.gradle
Androidμμ Firebase μ€λΉ
ANDROID_HOME=/opt/android-sdk/
JAVA_HOME=/usr/lib/jvm/java-8-openjdk
μ¬μ§κ΄
νμ νλ‘μ νΈ κ²½λ‘: CordovaLib
νμ νλ‘μ νΈ κ²½λ‘: μ±
publishNonDefaultλ λ μ΄μ μ¬μ©λμ§ μμΌλ©° λ μ΄μ ν¨κ³Όκ° μμ΅λλ€. μ΄μ λͺ¨λ λ³νμ΄ κ²μλ©λλ€.
':app' νλ‘μ νΈμ 'μ»΄νμΌ' ꡬμ±μ λ μ΄μ μ¬μ©λμ§ μμ΅λλ€. λμ 'ꡬν'μ μ¬μ©νμΈμ.
+---------------------------------------------------------------- ----------------
| cordova-android-support-gradle-release: 27.+
+---------------------------------------------------------------- ----------------
Task.leftShift(Closure) λ©μλλ λ μ΄μ μ¬μ©λμ§ μμΌλ©° Gradle 5.0μμ μ κ±°λ μμ μ
λλ€. λμ Task.doLast(Action)λ₯Ό μ¬μ©νμμμ€.
build_16h44ethchy300tz3gs66tp8t.run(/home/aurumque/Cordova/luiscoba/platforms/android/app/build.gradle:151)
registerResGeneratingTaskλ λ μ΄μ μ¬μ©λμ§ μμ΅λλ€. registerGeneratedFolders(FileCollection)λ₯Ό μ¬μ©νμΈμ.
registerResGeneratingTaskλ λ μ΄μ μ¬μ©λμ§ μμ΅λλ€. registerGeneratedFolders(FileCollection)λ₯Ό μ¬μ©νμΈμ.
:C ordovaLib:μ΅μ μ¬μ λΉλ
:C ordovaLib:preReleaseBuild μ΅μ λ²μ
:C ordovaLib:compileReleaseAidl μ΅μ μ 보
:C ordovaLib:compileReleaseRenderscript μ΅μ
:C ordovaLib:checkReleaseManifest μ΅μ μ 보
:C ordovaLib:generateReleaseBuildConfig μ΅μ
:C ordovaLib:prepareLintJar μ΅μ μ 보
:C ordovaLib:generateReleaseResValues ββμ΅μ
:C ordovaLib:generateReleaseResources μ΅μ μ 보
:C ordovaLib:packageReleaseResources μ΅μ μ 보
:C ordovaLib:platformAttrExtractor μ΅μ
:C ordovaLib:processReleaseManifest μ΅μ μ 보
:C ordovaLib:processReleaseResources μ΅μ μ 보
:C ordovaLib:generateReleaseSources μ΅μ
:C ordovaLib:javaPreCompileRelease μ΅μ λ²μ
:C ordovaLib:compileReleaseJavaWithJavac μ΅μ λ²μ
:C ordovaLib:processReleaseJavaRes NO-SOURCE
:C ordovaLib:transformClassesAndResourcesWithPrepareIntermediateJarsForRelease μ΅μ μ 보
: μ±:μ΅μ μ¬μ λΉλ
: app:preReleaseBuild μ΅μ λ²μ
: μ±:compileReleaseAidl μ΅μ
:C ordovaLib:packageReleaseRenderscript NO-SOURCE
: μ±:compileReleaseRenderscript μ΅μ
: μ±:checkReleaseManifest μ΅μ μ 보
: μ±:generateReleaseBuildConfig μ΅μ
: μ±:prepareLintJar μ΅μ μ 보
:C ordovaLib:mergeReleaseShaders μ΅μ
:C ordovaLib:compileReleaseShaders μ΅μ
:C ordovaLib:generateReleaseAssets μ΅μ μ 보
:C ordovaLib:mergeReleaseAssets μ΅μ μ 보
: μ±:mergeReleaseShaders μ΅μ
: μ±:compileReleaseShaders μ΅μ
: μ±:generateReleaseAssets μ΅μ μ 보
: app:mergeReleaseAssets μ΅μ μ 보
: μ±:νλ‘μΈμ€λ¦΄λ¦¬μ€GoogleμλΉμ€
json νμΌ νμ±: /home/aurumque/Cordova/luiscoba/platforms/android/app/google-services.json
: μ±:createReleaseCompatibleScreenManifests μ΅μ
: app:processReleaseManifest μ΅μ μ 보
: app:fabricGenerateResourcesRelease
: μ±:generateReleaseResValues μ΅μ
: μ±:generateReleaseResources μ΅μ
: μ±:mergeReleaseResources
: app:splitsDiscoveryTaskRelease μ΅μ λ²μ
: app:processReleaseResources/home/aurumque/.gradle/caches/transforms-1/files-1.1/customtabs-27.1.1.aar/66d15b7c1890e969f944ae6c7dea5271/res/values/values.xml : λ° AAPT: 리μμ€ λ° AAPT: μ€λ₯ μ€μ μ°Ύμ μ μμ΅λλ€.
/home/aurumque/.gradle/caches/transforms-1/files-1.1/customtabs-27.1.1.aar/66d15b7c1890e969f944ae6c7dea5271/res/values/values.xml: AAPT: μ€λ₯: 리μμ€ android:attr/tt λ₯Ό μ°Ύμ μ μμ
/home/aurumque/Cordova/luiscoba/platforms/android/app/build/intermediates/incremental/mergeReleaseResources/merged.dir/values/values. xml:103 : μ€λ₯: 리μμ€ android:attr/fontVariationSettings λ₯Ό μ°Ύμ μ μμ΅λλ€.
/home/aurumque/Cordova/luiscoba/platforms/android/app/build/intermediates/incremental/mergeReleaseResources/merged.dir/values/values. xml:103 : μ€λ₯: 리μμ€ android:attr/ttcIndex λ₯Ό μ°Ύμ μ μμ΅λλ€.
μ€λ₯: μ°Έμ‘° μ°κ²°μ μ€ν¨νμ΅λλ€.
aapt μ€ν μ€ν¨
com.android.ide.common.process.ProcessException: aapt μ€ν μ€ν¨
com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:796)
com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:551)
com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:285)
com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:109)
org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)
org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)μμ
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
μμΈ: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 μ€λ₯: μμΈν λ΄μ©μ λ‘κ·Έ νμΈ
com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:482)
com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:794)
... 41κ° λ
μμΈ: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 μ€λ₯: μμΈν λ΄μ©μ λ‘κ·Έ νμΈ
com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:462)
com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
com.android.builder.internal.aapt.v2.QueueableAapt2.lambda$makeValidatedPackage$1(QueueableAapt2.java:179)
μμΈ: com.android.tools.aapt2.Aapt2Exception: AAPT2 μ€λ₯: μμΈν λ΄μ©μ λ‘κ·Έ νμΈ
com.android.builder.png.AaptProcess$NotifierProcessOutput.handleOutput(AaptProcess.java:463)
com.android.builder.png.AaptProcess$NotifierProcessOutput.err(AaptProcess.java:415)
com.android.builder.png.AaptProcess$ProcessOutputFacade.err(AaptProcess.java:332)
com.android.utils.GrabProcessOutput$1.run(GrabProcessOutput.java:104)
FAILURE: μμΈμ ν¨κ» λΉλμ μ€ν¨νμ΅λλ€.
무μμ΄ μλͺ»λμλμ§:
μμ
': app:processReleaseResources 'μ λν μ€νμ μ€ν¨νμ΅λλ€.
aapt μ€ν μ€ν¨
λ
Έλ ₯νλ€:
--stacktrace μ΅μ
κ³Ό ν¨κ» μ€ννμ¬ μ€ν μΆμ μ κ°μ Έμ΅λλ€. λ λ§μ λ‘κ·Έ μΆλ ₯μ μ»μΌλ €λ©΄ --info λλ --debug μ΅μ
κ³Ό ν¨κ» μ€ννμμμ€.
https://help.gradle.org μμ λ λ§μ λμμ λ°μΌμΈμ.
λΉλ μ€ν¨ 0μ΄
μ€ν¨ν
μ€ν κ°λ₯ν μμ
33κ°: μ€νλ μμ
4κ°, μ΅μ μμ
29κ°
/home/aurumque/Cordova/luiscoba/platforms/android/gradlew: μ’
λ£ μ½λ 1 μ€λ₯ μΆλ ₯μΌλ‘ λͺ
λ Ή μ€ν¨:
/home/aurumque/.gradle/caches/transforms-1/files-1.1/customtabs-27.1.1.aar/66d15b7c1890e969f944ae6c7dea5271/res/values/values.xml: AAPT: μ€λ₯: 리μμ€ android:attr/fontV λ₯Ό μ°Ύμ μ μμ
/home/aurumque/.gradle/caches/transforms-1/files-1.1/customtabs-27.1.1.aar/66d15b7c1890e969f944ae6c7dea5271/res/values/values.xml: AAPT: μ€λ₯: 리μμ€ android:attr/tt λ₯Ό μ°Ύμ μ μμ
/home/aurumque/Cordova/luiscoba/platforms/android/app/build/intermediates/incremental/mergeReleaseResources/merged.dir/values/values. xml:103 : μ€λ₯: 리μμ€ android:attr/fontVariationSettings λ₯Ό μ°Ύμ μ μμ΅λλ€.
/home/aurumque/Cordova/luiscoba/platforms/android/app/build/intermediates/incremental/mergeReleaseResources/merged.dir/values/values. xml:103 : μ€λ₯: 리μμ€ android:attr/ttcIndex λ₯Ό μ°Ύμ μ μμ΅λλ€.
μ€λ₯: μ°Έμ‘° μ°κ²°μ μ€ν¨νμ΅λλ€.
aapt μ€ν μ€ν¨
com.android.ide.common.process.ProcessException: aapt μ€ν μ€ν¨
com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:796)
com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:551)
com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:285)
com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:109)
org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)
org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)μμ
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
μμΈ: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 μ€λ₯: μμΈν λ΄μ©μ λ‘κ·Έ νμΈ
com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:482)
com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:794)
... 41κ° λ
μμΈ: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 μ€λ₯: μμΈν λ΄μ©μ λ‘κ·Έ νμΈ
com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:462)
com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
com.android.builder.internal.aapt.v2.QueueableAapt2.lambda$makeValidatedPackage$1(QueueableAapt2.java:179)
μμΈ: com.android.tools.aapt2.Aapt2Exception: AAPT2 μ€λ₯: μμΈν λ΄μ©μ λ‘κ·Έ νμΈ
com.android.builder.png.AaptProcess$NotifierProcessOutput.handleOutput(AaptProcess.java:463)
com.android.builder.png.AaptProcess$NotifierProcessOutput.err(AaptProcess.java:415)
com.android.builder.png.AaptProcess$ProcessOutputFacade.err(AaptProcess.java:332)
com.android.utils.GrabProcessOutput$1.run(GrabProcessOutput.java:104)
FAILURE: μμΈμ ν¨κ» λΉλμ μ€ν¨νμ΅λλ€.
무μμ΄ μλͺ»λμλμ§:
μμ
': app:processReleaseResources 'μ λν μ€νμ μ€ν¨νμ΅λλ€.
aapt μ€ν μ€ν¨
λ
Έλ ₯νλ€:
--stacktrace μ΅μ
κ³Ό ν¨κ» μ€ννμ¬ μ€ν μΆμ μ κ°μ Έμ΅λλ€. λ λ§μ λ‘κ·Έ μΆλ ₯μ μ»μΌλ €λ©΄ --info λλ --debug μ΅μ
κ³Ό ν¨κ» μ€ννμμμ€.
https://help.gradle.org μμ λ λ§μ λμμ λ°μΌμΈμ.
λΉλ μ€ν¨ 0μ΄
`
λλ μμ€κ°μ΄ λ€μ΄! λꡬλ μ§ λμΈ μ μλ€λ©΄ κΈ°μ©λλ€.
κ°μ¬ν©λλ€
κ°μ λ°°μμ. μ°λ¦¬λ μ§κΈ 6μκ° λμ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ €κ³ λ Έλ ₯νμ΅λλ€.
Firebase νμ 6μ 17μΌ μ
λ°μ΄νΈμμ λ€μ μ λ λ³κ²½ μ¬νμ μ μ©νμ΅λλ€.
https://firebase.google.com/support/release-notes/android#update_ -_june_17_2019
μλ§λ μ΄κ²μ΄ λ¬Έμ λ₯Ό μΌμΌν¨ κ² κ°μ΅λλ€..
κ°μ λ¬Έμ
λλ λν κ°μ λ¬Έμ λ₯Ό κ²ͺκ³ μμ΅λλ€. λ§μ§λ§ μκ°μ λ΄ Android μ ν리μΌμ΄μ μ λΉλν μ μμμ΅λλ€. μ΄ Cordova Firebase νλ¬κ·ΈμΈμ΄ λ¬Έμ λ₯Ό μΌμΌν€λ κ²μ μ°ΎκΈ° μν΄ ν루 μ’ μΌ μκ°μ μμμ΅λλ€.
λλ μΆκ°λ₯Ό μλνλ€
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
build.gradleνμ§λ§ μλ‘μ΄ λ¬Έμ κ° λ°μν©λλ€ :(
μ€λ₯: 리μμ€ android:attr/fontVariationSettings λ₯Ό μ°Ύμ μ μμ΅λλ€.
μ€λ₯: 리μμ€ android:attr/ttcIndex λ₯Ό μ°Ύμ μ μμ΅λλ€.
λλ μΆκ°λ₯Ό μλνλ€
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
build.gradleνμ§λ§ μλ‘μ΄ λ¬Έμ κ° λ°μν©λλ€ :(μ€λ₯: 리μμ€ android:attr/fontVariationSettings λ₯Ό μ°Ύμ μ μμ΅λλ€.
μ€λ₯: 리μμ€ android:attr/ttcIndex λ₯Ό μ°Ύμ μ μμ΅λλ€.
λμΌν λ¬Έμ κ° λ°μνμ¬ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ ν루 μ’ μΌ μκ°μ 보λμ§λ§ ν΄κ²°μ± μ΄ μμμ΅λλ€.
@ https://github.com/arnesson/cordova-plugin-firebase/issues/1083#issuecomment -503224816
λλ₯Ό μν μ΄ μν!
ionic cordova νλ¬κ·ΈμΈ cordova-plugin-firebase μ κ±°
μ΄μ¨ μ½λ₯΄λλ° νλ¬κ·ΈμΈ μΆκ° https://github.com/dpa99c/cordova-plugin-firebase#GH -1057-April-05-android-build-issue
ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-android-adapterλ₯Ό μΆκ°ν©λλ€.
ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-androidx-adapterλ₯Ό μΆκ°ν©λλ€.
μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ rm μλλ‘μ΄λ
μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ μΆκ° [email protected]
μ΄κ²μ Firebase νλ¬κ·ΈμΈμ μ΄μ λ²μ μ μ¬μ©νκΈ° λλ¬Έμ μ€λμ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
UnhandledPromiseRejectionWarning: μ€λ₯ [ERR_UNHANDLED_ERROR]: μ²λ¦¬λμ§ μμ μ€λ₯μ λλ€. (νλ«νΌ "android"λ μ ν¨ν cordova νλ«νΌμ΄ μλ κ² κ°μ΅λλ€. API.jsκ° λλ½λμμ΅λλ€. androidλ μ§μλμ§ μμ΅λλ€.)
Cordova Android 8μ© λΉλλ₯Ό μ€ννλ λμ μμ μ€λ₯κ° λ°μν©λλ€.
UnhandledPromiseRejectionWarning: μ€λ₯ [ERR_UNHANDLED_ERROR]: μ²λ¦¬λμ§ μμ μ€λ₯μ λλ€. (νλ«νΌ "android"λ μ ν¨ν cordova νλ«νΌμ΄ μλ κ² κ°μ΅λλ€. API.jsκ° λλ½λμμ΅λλ€. androidλ μ§μλμ§ μμ΅λλ€.)
Cordova Android 8μ© λΉλλ₯Ό μ€ννλ λμ μμ μ€λ₯κ° λ°μν©λλ€.
λΉλ λͺ λ Ήμ λ€μ μ€ννμμμ€.
μλμ, λμΌν μ€λ₯κ° λ°μν©λλ€.
νλ«νΌμμ PlatformApiλ₯Ό λ‘λν μ μμ΅λλ€. μ€λ₯: 'properties-parser' λͺ¨λμ μ°Ύμ μ μμ΅λλ€.
(λ
Έλ:30131) UnhandledPromiseRejectionWarning: μ€λ₯ [ERR_UNHANDLED_ERROR]: μ²λ¦¬λμ§ μμ μ€λ₯μ
λλ€. (νλ«νΌ "android"λ μ ν¨ν cordova νλ«νΌμ΄ μλ κ² κ°μ΅λλ€. API.jsκ° λλ½λμμ΅λλ€. androidλ μ§μλμ§ μμ΅λλ€.)
rsi
λλ₯Ό μν΄ μΌν©λλ€, κ°μ¬ν©λλ€! κ·Έλ¬λ "ionic cordova νλ¬κ·ΈμΈ add cordova-plugin-android-adapter"κ° μ‘΄μ¬νμ§ μμ΅λλ€.
μ΄κ²μ΄ λ΄κ° ν μΌμ΄λ€
4μ λ²μ μ μΆκ°ν μ μμ΅λλ€.
μ΄μ¨ μ½λ₯΄λλ° νλ¬κ·ΈμΈ μΆκ° https://github.com/dpa99c/cordova-plugin-firebase#GH -1057-April-05-android-build-issue
μ€λ₯:
(λ
Έλ:1549) UnhandledPromiseRejectionWarning: CordovaError: λ μ§μ€νΈλ¦¬λ₯Ό ν΅ν΄ https://github.com/dpa99c/cordova-plugin-firebase#GH -1057-April-05-android-build-issue νλ¬κ·ΈμΈμ κ°μ Έμ€μ§ λͺ»νμ΅λλ€.
μλ§λ μ΄κ²μ μ°κ²° λ¬Έμ μ΄κ±°λ νλ¬κ·ΈμΈ μ¬μμ΄ μ¬λ°λ₯΄μ§ μμ΅λλ€.
μ°κ²° λ° νλ¬κ·ΈμΈ μ΄λ¦/λ²μ /URLμ νμΈνμμμ€.
ionic cordova νλ¬κ·ΈμΈ cordova-plugin-firebase μ κ±°
μ΄μ¨ μ½λ₯΄λλ° νλ¬κ·ΈμΈ μΆκ° https://github.com/dpa99c/cordova-plugin-firebase#GH -1057-April-05-android-build-issue
ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-android-adapterλ₯Ό μΆκ°ν©λλ€.
ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-androidx-adapterλ₯Ό μΆκ°ν©λλ€.μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ rm μλλ‘μ΄λ
μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ μΆκ° [email protected]μ΄κ²μ Firebase νλ¬κ·ΈμΈμ μ΄μ λ²μ μ μ¬μ©νκΈ° λλ¬Έμ μ€λμ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
λμ ν¨κ» μΌνμ§ μμλ€ :(
@ChronouSphere κ°μ¬ν©λλ€. κ·Έκ²μ μ μλν©λλ€!
@marcosricardo μ΄κ²μ μ°Έμ‘°νμμμ€: https://stackoverflow.com/a/56668983/1077309
ionic cordova νλ¬κ·ΈμΈ cordova-plugin-firebase μ κ±°
μ΄μ¨ μ½λ₯΄λλ° νλ¬κ·ΈμΈ μΆκ° https://github.com/dpa99c/cordova-plugin-firebase#GH -1057-April-05-android-build-issue
ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-android-adapterλ₯Ό μΆκ°ν©λλ€.
ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-androidx-adapterλ₯Ό μΆκ°ν©λλ€.μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ rm μλλ‘μ΄λ
μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ μΆκ° [email protected]μ΄κ²μ Firebase νλ¬κ·ΈμΈμ μ΄μ λ²μ μ μ¬μ©νκΈ° λλ¬Έμ μ€λμ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
κ°μ¬ν©λλ€! @ChronouSphere λ¨κ³λ₯Ό λ¨Όμ μλνμ§λ§ μ¬μ ν [email protected]μ μμκ³ android@8μ μ€μΉνμ λ λΉλκ° μ±κ³΅μ μΌλ‘ μλ£λμμ΅λλ€.
ionic cordova νλ¬κ·ΈμΈ cordova-plugin-firebase μ κ±°
μ΄μ¨ μ½λ₯΄λλ° νλ¬κ·ΈμΈ μΆκ° https://github.com/dpa99c/cordova-plugin-firebase#GH -1057-April-05-android-build-issue
ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-android-adapterλ₯Ό μΆκ°ν©λλ€.
ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-androidx-adapterλ₯Ό μΆκ°ν©λλ€.
μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ rm μλλ‘μ΄λ
μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ μΆκ° [email protected]
μ΄κ²μ Firebase νλ¬κ·ΈμΈμ μ΄μ λ²μ μ μ¬μ©νκΈ° λλ¬Έμ μ€λμ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.κ°μ¬ν©λλ€! @ChronouSphere λ¨κ³λ₯Ό λ¨Όμ μλνμ§λ§ μ¬μ ν [email protected]μ μμκ³ android@8μ μ€μΉνμ λ λΉλκ° μ±κ³΅μ μΌλ‘ μλ£λμμ΅λλ€.
λλ₯Ό μν΄ μλνμ§ μμμ΅λλ€ :(, λ€λ₯Έ μμ΄λμ΄?
@herduin μλν΄λ³΄μμμ€ https://github.com/wizpanda/cordova-plugin-firebase-lib/releases
μ°λ¦¬λ ν¬ν¬λ₯Ό μ μ§νκ³ μ°λ¦¬λ λͺ¨λμ΄ λ¬Έμ λ₯Ό ν΄κ²° ν cordova-android
7.xμ λ° 8.xλ₯Όμ
μ΄ λͺ λ ΉμΌλ‘ ν΄κ²°νμ΅λλ€.
ionic cordova platform rm android
ionic cordova plugin rm cordova-plugin-firebase
npm install cordova@9
ionic cordova plugin add https://github.com/dpa99c/cordova-plugin-firebase#GH-1057-April-05-android-build-issue
ionic cordova plugin add cordova-plugin-androidx
ionic cordova plugin add cordova-plugin-androidx-adapter
ionic cordova platform add android@8
μλ νμΈμ! μ΄λ€ μ μΌλ‘λ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ €κ³ νμ§λ§ λͺ¨λ μλμμ μ€λ₯κ° λ°μν©λλ€.
BUILD FAILED in 38s
> Task :app:compileReleaseJavaWithJavac FAILED
33 actionable tasks: 33 executed
/Volumes/Datos/GIT/CCASApp/platforms/android/gradlew: Command failed with exit code 1 Error output:
Note: /Volumes/Datos/GIT/CCASApp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin.java:9: error: cannot find symbol
import android.support.v4.app.NotificationManagerCompat;
^
symbol: class NotificationManagerCompat
location: package android.support.v4.app
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:11: error: cannot find symbol
import android.support.v4.app.NotificationCompat;
^
symbol: class NotificationCompat
location: package android.support.v4.app
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/de/sitewaerts/cordova/documentviewer/FileProvider.java:3: error: package android.support.v4.content does not exist
public class FileProvider extends android.support.v4.content.FileProvider {
^
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/de/sitewaerts/cordova/documentviewer/DocumentViewerPlugin.java:34: error: package android.support.v4.content does not exist
import android.support.v4.content.FileProvider;
^
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:11: error: package android.support.annotation does not exist
import android.support.annotation.RequiresApi;
^
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:121: error: cannot find symbol
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
^
symbol: class RequiresApi
location: class IonicWebViewEngine.ServerClient
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin.java:358: error: cannot find symbol
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context);
^
symbol: class NotificationManagerCompat
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin.java:358: error: cannot find symbol
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context);
^
symbol: variable NotificationManagerCompat
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:144: error: package NotificationCompat does not exist
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId);
^
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:144: error: package NotificationCompat does not exist
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId);
^
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:153: error: cannot find symbol
.setPriority(NotificationCompat.PRIORITY_MAX);
^
symbol: variable NotificationCompat
location: class FirebasePluginMessagingService
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:149: error: package NotificationCompat does not exist
.setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))
^
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:148: error: cannot find symbol
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
^
symbol: variable NotificationCompat
location: class FirebasePluginMessagingService
/Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/de/sitewaerts/cordova/documentviewer/DocumentViewerPlugin.java:500: error: cannot find symbol
Uri contentUri = FileProvider.getUriForFile(
^
symbol: method getUriForFile(Context,String,File)
location: class FileProvider
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
14 errors
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
μ΄ λͺ λ ΉμΌλ‘ ν΄κ²°νμ΅λλ€.
ionic cordova platform rm android
ionic cordova plugin rm cordova-plugin-firebase
npm install cordova@9
ionic cordova plugin add https://github.com/dpa99c/cordova-plugin-firebase#GH-1057-April-05-android-build-issue
ionic cordova plugin add cordova-plugin-androidx
ionic cordova plugin add cordova-plugin-androidx-adapter
ionic cordova platform add android@8
νμλ λλ΅μ λλ₯Ό μν΄ μΌν κ²μ λλ€.
cordova -android < 8.0.0μ κ²½μ° [email protected]
cordova-android > 8.0.0μ κ²½μ° [email protected]
κ³ μ₯λ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
https://github.com/arnesson/cordova-plugin-firebase/blob/5a3c08d4e2e9d372894d778ca8c8c3d7c3d72d0d/src/android/build.gradle#L20
Google Firebase μ
λ°μ΄νΈ - 2019λ
6μ 17μΌ
https://firebase.google.com/support/release-notes/android#version_1621
μ΄ λ¦΄λ¦¬μ€μμλ λ€μ λΌμ΄λΈλ¬λ¦¬κ° μ λ°μ΄νΈλμμ΅λλ€.
μΈμ¦ λ²μ 18.0.0
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ μ°Ύμκ³ λμ SDK λ²μ 27μ μ μ§ν©λλ€.
νλ μ 리: platforms/android
μμ
ionic cordova build android
(μ€ν¨)
platforms/android/project.properties
μ
λ°μ΄νΈ:
cordova.system.library.3=com.google.android.gms:play-services-tagmanager:16.0.8
cordova.system.library.4=com.google.firebase:firebase-core:16.0.8
cordova.system.library.5=com.google.firebase:firebase-messaging:17.5.0
cordova.system.library.6=com.google.firebase:firebase-config:16.4.1
cordova.system.library.7=com.google.firebase:firebase-perf:16.2.4
platforms/android/app/build.gradle
μ
λ°μ΄νΈ(μ’
μμ± ~ln 266) compile "com.google.android.gms:play-services-tagmanager:16.0.8"
compile "com.google.firebase:firebase-core:16.0.8"
compile "com.google.firebase:firebase-messaging:17.5.0"
compile "com.google.firebase:firebase-config:16.4.1"
compile "com.google.firebase:firebase-perf:16.2.4"
platforms/android/cordova-plugin-firebase/cloud-build.gradle
μ
λ°μ΄νΈ(μ’
μμ±μμ) compile 'com.google.firebase:firebase-auth:16.2.1'
ionic cordova build android
cd platforms/android
./gradlew build
κ³ μ₯λ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
https://github.com/arnesson/cordova-plugin-firebase/blob/5a3c08d4e2e9d372894d778ca8c8c3d7c3d72d0d/src/android/build.gradle#L20Google Firebase μ λ°μ΄νΈ - 2019λ 6μ 17μΌ
https://firebase.google.com/support/release-notes/android#version_1621μ΄ λ¦΄λ¦¬μ€μμλ λ€μ λΌμ΄λΈλ¬λ¦¬κ° μ λ°μ΄νΈλμμ΅λλ€.
μΈμ¦ λ²μ 18.0.0μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ μ°Ύμκ³ λμ SDK λ²μ 27μ μ μ§ν©λλ€.
- νλ μ 리:
platforms/android
μμ ionic cordova build android
(μ€ν¨)platforms/android/project.properties
μ λ°μ΄νΈ:cordova.system.library.3=com.google.android.gms:play-services-tagmanager:16.0.8 cordova.system.library.4=com.google.firebase:firebase-core:16.0.8 cordova.system.library.5=com.google.firebase:firebase-messaging:17.5.0 cordova.system.library.6=com.google.firebase:firebase-config:16.4.1 cordova.system.library.7=com.google.firebase:firebase-perf:16.2.4
platforms/android/app/build.gradle
μ λ°μ΄νΈ(μ’ μμ± ~ln 266)compile "com.google.android.gms:play-services-tagmanager:16.0.8" compile "com.google.firebase:firebase-core:16.0.8" compile "com.google.firebase:firebase-messaging:17.5.0" compile "com.google.firebase:firebase-config:16.4.1" compile "com.google.firebase:firebase-perf:16.2.4"
platforms/android/cordova-plugin-firebase/cloud-build.gradle
μ λ°μ΄νΈ(μ’ μμ±μμ)compile 'com.google.firebase:firebase-auth:16.2.1'
ionic cordova build android
λλ
cd platforms/android
./gradlew build
"compile 'com.google. firebase:firebase-auth :+'"λ₯Ό "compile 'com.google. firebase:firebase-auth :16.2.1'"λ‘ λ³κ²½νλ κ²λ§μΌλ‘λ μ μλν©λλ€. κ°μ¬ ν΄μ.
μλ€μ, 빨리 μμ
ν΄μ€μ κ³ λ§μ. λΉλλ μ±κ³΅νμ§λ§ APKκ° μμ±λμ§ μμμ΅λλ€.
μ΄λ€ μμ΄λμ΄ pls?
μ€μ λ‘ μ€λ₯κ° λ°μνμ΅λλ€.
νλ‘μ νΈ ':app'μ νκ°νλ λμ λ¬Έμ κ° λ°μνμ΅λλ€.
μ€ν¬λ¦½νΈ '/platforms/android/cordova-plugin-firebase/starter-build.gradle'μ΄ μ‘΄μ¬νμ§ μμΌλ―λ‘ μ½μ μ μμ΅λλ€.
λ€λ₯Έ μ¬λμ΄ κ°μ μ€λ₯κ° μμ΅λκΉ?
νμΌμ΄ μ€μ λ‘ μ‘΄μ¬νλμ§ νμΈνλλ° μ½μ μ μλ μ΄μ λ νμ€νμ§ μμ΅λλ€.
values.xmlμ attr/fontVariationSettings
λ° attr/ttcIndex
μ λν΄ μμ
ν΄μΌ ν©λλ€. μ΄κ²μ compileSDK 28κ³Ό κ΄λ ¨μ΄ μμ΅λκΉ? λ€λ₯Έ μ€λ₯λ₯Ό λ°μμν€λ SDK 28λ‘ μ
λ°μ΄νΈν μ μλ κ²μ²λΌ 보μ΄μ§λ§ 27μ μ μ§νλ©΄ μ‘΄μ¬νμ§ μλ values.xmlμμ κ°μ κ²μν©λλ€!
Command failed with exit code 1 Error output:
<home_path>/.gradle/caches/transforms-1/files-1.1/customtabs-27.1.1.aar/3dce91a2380bf657ee372a601e1fa4bb/res/values/values.xml:7:5-71: AAPT: error: resource android:attr/fontVariationSettings not found.
<home_path>/.gradle/caches/transforms-1/files-1.1/customtabs-27.1.1.aar/3dce91a2380bf657ee372a601e1fa4bb/res/values/values.xml:7:5-71: AAPT: error: resource android:attr/ttcIndex not found.
<project>/platforms/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:157: error: resource android:attr/fontVariationSettings not found.
<project>/platforms/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:157: error: resource android:attr/ttcIndex not found.
error: failed linking references.
λ΄ μλͺ»μ΄μΌ. λλ cordova 8μ κ°μ§κ³ μμμ΅λλ€. Cordova CLIλ‘ μ κ·Έλ μ΄λ : 9.0.0 ([email protected]) μμ λμμ§λ§ Firebaseκ° νΈμΆλλ λ°©μμ΄ λ³κ²½λμμ΅λλ€.
λ΄κ° λνλ κ±°μ§
'@ionic-native/firebase'μμ { Firebase } κ°μ Έμ€κΈ°
λλ
'firebase'μμ { Firebase } κ°μ Έμ€κΈ°
νμ§λ§ λ€μκ³Ό κ°μ μ€λ₯κ° λ°μν©λλ€.
'typeof' μ νμ 'initializeApp' μμ±μ΄ μμ΅λλ€.
firebase.initializeApp(ꡬμ±);
μ΄λ€ μμ΄λμ΄?
@accerpcom import { Firebase } from 'firebase'
μμ±ν λ 'firebase'
λ μ€μ λ‘ Google Firebaseμ 곡μ JS λΌμ΄λΈλ¬λ¦¬μ
λλ€.
@ionic-native/firebase
λ μ΄ μ½λ₯΄λλ° νλ¬κ·ΈμΈμ JS μ½λμ λν Typescript λνΌμ
λλ€. κ·Έλμ λΉμ μ λ κ°μ§λ₯Ό μκ³ μμ΅λλ€.
κ³ μ₯λ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
Google Firebase μ λ°μ΄νΈ - 2019λ 6μ 17μΌ
https://firebase.google.com/support/release-notes/android#version_1621μ΄ λ¦΄λ¦¬μ€μμλ λ€μ λΌμ΄λΈλ¬λ¦¬κ° μ λ°μ΄νΈλμμ΅λλ€.
μΈμ¦ λ²μ 18.0.0μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ μ°Ύμκ³ λμ SDK λ²μ 27μ μ μ§ν©λλ€.
- νλ μ 리:
platforms/android
μμ ionic cordova build android
(μ€ν¨)platforms/android/project.properties
μ λ°μ΄νΈ:cordova.system.library.3=com.google.android.gms:play-services-tagmanager:16.0.8 cordova.system.library.4=com.google.firebase:firebase-core:16.0.8 cordova.system.library.5=com.google.firebase:firebase-messaging:17.5.0 cordova.system.library.6=com.google.firebase:firebase-config:16.4.1 cordova.system.library.7=com.google.firebase:firebase-perf:16.2.4
platforms/android/app/build.gradle
μ λ°μ΄νΈ(μ’ μμ± ~ln 266)compile "com.google.android.gms:play-services-tagmanager:16.0.8" compile "com.google.firebase:firebase-core:16.0.8" compile "com.google.firebase:firebase-messaging:17.5.0" compile "com.google.firebase:firebase-config:16.4.1" compile "com.google.firebase:firebase-perf:16.2.4"
platforms/android/cordova-plugin-firebase/cloud-build.gradle
μ λ°μ΄νΈ(μ’ μμ±μμ)compile 'com.google.firebase:firebase-auth:16.2.1'
ionic cordova build android
λλ
cd platforms/android
./gradlew build
νλ λλΆμ 2μΌλμ μ‘Έμ§ μκ³ κ±΄κ°μ ꡬνμ΅λλ€...
μλͺ
λ λ²λ€μ μμ±νλ €λ©΄ Android gradle νλ¬κ·ΈμΈμ λ²μ 3.2.0 μ΄μμΌλ‘ μ
λ°μ΄νΈν΄μΌ ν©λλ€.
λ λ¬Έμ !!!
κ³ μ₯λ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
https://github.com/arnesson/cordova-plugin-firebase/blob/5a3c08d4e2e9d372894d778ca8c8c3d7c3d72d0d/src/android/build.gradle#L20Google Firebase μ λ°μ΄νΈ - 2019λ 6μ 17μΌ
https://firebase.google.com/support/release-notes/android#version_1621μ΄ λ¦΄λ¦¬μ€μμλ λ€μ λΌμ΄λΈλ¬λ¦¬κ° μ λ°μ΄νΈλμμ΅λλ€.
μΈμ¦ λ²μ 18.0.0μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ μ°Ύμκ³ λμ SDK λ²μ 27μ μ μ§ν©λλ€.
- νλ μ 리:
platforms/android
μμ ionic cordova build android
(μ€ν¨)platforms/android/project.properties
μ λ°μ΄νΈ:cordova.system.library.3=com.google.android.gms:play-services-tagmanager:16.0.8 cordova.system.library.4=com.google.firebase:firebase-core:16.0.8 cordova.system.library.5=com.google.firebase:firebase-messaging:17.5.0 cordova.system.library.6=com.google.firebase:firebase-config:16.4.1 cordova.system.library.7=com.google.firebase:firebase-perf:16.2.4
platforms/android/app/build.gradle
μ λ°μ΄νΈ(μ’ μμ± ~ln 266)compile "com.google.android.gms:play-services-tagmanager:16.0.8" compile "com.google.firebase:firebase-core:16.0.8" compile "com.google.firebase:firebase-messaging:17.5.0" compile "com.google.firebase:firebase-config:16.4.1" compile "com.google.firebase:firebase-perf:16.2.4"
platforms/android/cordova-plugin-firebase/cloud-build.gradle
μ λ°μ΄νΈ(μ’ μμ±μμ)compile 'com.google.firebase:firebase-auth:16.2.1'
ionic cordova build android
λλ
cd platforms/android
./gradlew build
λ§€μ° κ°μ¬ν©λλ€ !!! λΉμ μ΄ λλ₯Ό ꡬν΄μ£Όμμ΅λλ€!
μ΄κ²μ μλ νμμμ€ https://github.com/wizpanda/cordova-plugin-firebase-lib/releases
μΏ! λλ₯Ό μν΄ μΌν΄!
λλ κ°μ λ¬Έμ κ°μλ€....
https://github.com/arnesson/cordova-plugin-firebase/issues/1084#issuecomment -503726618
κ°μ¬ ν΄μ.
λΉμ μ΄ λλ₯Ό ꡬν΄μ£Όμμ΅λλ€
μλ νμΈμ! μ΄λ€ μ μΌλ‘λ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ €κ³ νμ§λ§ λͺ¨λ μλμμ μ€λ₯κ° λ°μν©λλ€.
BUILD FAILED in 38s > Task :app:compileReleaseJavaWithJavac FAILED 33 actionable tasks: 33 executed /Volumes/Datos/GIT/CCASApp/platforms/android/gradlew: Command failed with exit code 1 Error output: Note: /Volumes/Datos/GIT/CCASApp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin.java:9: error: cannot find symbol import android.support.v4.app.NotificationManagerCompat; ^ symbol: class NotificationManagerCompat location: package android.support.v4.app /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:11: error: cannot find symbol import android.support.v4.app.NotificationCompat; ^ symbol: class NotificationCompat location: package android.support.v4.app /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/de/sitewaerts/cordova/documentviewer/FileProvider.java:3: error: package android.support.v4.content does not exist public class FileProvider extends android.support.v4.content.FileProvider { ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/de/sitewaerts/cordova/documentviewer/DocumentViewerPlugin.java:34: error: package android.support.v4.content does not exist import android.support.v4.content.FileProvider; ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:11: error: package android.support.annotation does not exist import android.support.annotation.RequiresApi; ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:121: error: cannot find symbol @RequiresApi(Build.VERSION_CODES.LOLLIPOP) ^ symbol: class RequiresApi location: class IonicWebViewEngine.ServerClient /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin.java:358: error: cannot find symbol NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context); ^ symbol: class NotificationManagerCompat /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin.java:358: error: cannot find symbol NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context); ^ symbol: variable NotificationManagerCompat /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:144: error: package NotificationCompat does not exist NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId); ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:144: error: package NotificationCompat does not exist NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId); ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:153: error: cannot find symbol .setPriority(NotificationCompat.PRIORITY_MAX); ^ symbol: variable NotificationCompat location: class FirebasePluginMessagingService /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:149: error: package NotificationCompat does not exist .setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody)) ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:148: error: cannot find symbol .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) ^ symbol: variable NotificationCompat location: class FirebasePluginMessagingService /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/de/sitewaerts/cordova/documentviewer/DocumentViewerPlugin.java:500: error: cannot find symbol Uri contentUri = FileProvider.getUriForFile( ^ symbol: method getUriForFile(Context,String,File) location: class FileProvider Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 14 errors FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:compileReleaseJavaWithJavac'. > Compilation failed; see the compiler error output for details.
μ΄ λͺ λ ΉμΌλ‘ ν΄κ²°νμ΅λλ€.
ionic cordova platform rm android
ionic cordova plugin rm cordova-plugin-firebase
npm install cordova@9
ionic cordova plugin add https://github.com/dpa99c/cordova-plugin-firebase#GH-1057-April-05-android-build-issue
ionic cordova plugin add cordova-plugin-androidx
ionic cordova plugin add cordova-plugin-androidx-adapter
ionic cordova platform add android@8
κ³ μΉ μ μμμ΅λκΉ? λ€λ₯Έ μ μλ μ΅μ μ λͺ¨λ μλν΄λ λμΌν μ€λ₯κ° λ°μν©λλ€.
μλ νμΈμ! μ΄λ€ μ μΌλ‘λ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ €κ³ νμ§λ§ λͺ¨λ μλμμ μ€λ₯κ° λ°μν©λλ€.
BUILD FAILED in 38s > Task :app:compileReleaseJavaWithJavac FAILED 33 actionable tasks: 33 executed /Volumes/Datos/GIT/CCASApp/platforms/android/gradlew: Command failed with exit code 1 Error output: Note: /Volumes/Datos/GIT/CCASApp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin.java:9: error: cannot find symbol import android.support.v4.app.NotificationManagerCompat; ^ symbol: class NotificationManagerCompat location: package android.support.v4.app /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:11: error: cannot find symbol import android.support.v4.app.NotificationCompat; ^ symbol: class NotificationCompat location: package android.support.v4.app /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/de/sitewaerts/cordova/documentviewer/FileProvider.java:3: error: package android.support.v4.content does not exist public class FileProvider extends android.support.v4.content.FileProvider { ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/de/sitewaerts/cordova/documentviewer/DocumentViewerPlugin.java:34: error: package android.support.v4.content does not exist import android.support.v4.content.FileProvider; ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:11: error: package android.support.annotation does not exist import android.support.annotation.RequiresApi; ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:121: error: cannot find symbol @RequiresApi(Build.VERSION_CODES.LOLLIPOP) ^ symbol: class RequiresApi location: class IonicWebViewEngine.ServerClient /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin.java:358: error: cannot find symbol NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context); ^ symbol: class NotificationManagerCompat /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin.java:358: error: cannot find symbol NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context); ^ symbol: variable NotificationManagerCompat /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:144: error: package NotificationCompat does not exist NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId); ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:144: error: package NotificationCompat does not exist NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId); ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:153: error: cannot find symbol .setPriority(NotificationCompat.PRIORITY_MAX); ^ symbol: variable NotificationCompat location: class FirebasePluginMessagingService /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:149: error: package NotificationCompat does not exist .setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody)) ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:148: error: cannot find symbol .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) ^ symbol: variable NotificationCompat location: class FirebasePluginMessagingService /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/de/sitewaerts/cordova/documentviewer/DocumentViewerPlugin.java:500: error: cannot find symbol Uri contentUri = FileProvider.getUriForFile( ^ symbol: method getUriForFile(Context,String,File) location: class FileProvider Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 14 errors FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:compileReleaseJavaWithJavac'. > Compilation failed; see the compiler error output for details.
μ΄ λͺ λ ΉμΌλ‘ ν΄κ²°νμ΅λλ€.
ionic cordova platform rm android
ionic cordova plugin rm cordova-plugin-firebase
npm install cordova@9
ionic cordova plugin add https://github.com/dpa99c/cordova-plugin-firebase#GH-1057-April-05-android-build-issue
ionic cordova plugin add cordova-plugin-androidx
ionic cordova plugin add cordova-plugin-androidx-adapter
ionic cordova platform add android@8
κ³ μΉ μ μμμ΅λκΉ? λ€λ₯Έ μ μλ μ΅μ μ λͺ¨λ μλν΄λ λμΌν μ€λ₯κ° λ°μν©λλ€.
μ, νλ‘μ νΈ λ£¨νΈ ν΄λμμ Cordova 9(npm install cordova@9) λ° android 8(ionic cordova νλ«νΌ add android@8)μ λν μ€μν μ λ°μ΄νΈμ λλ€.
μλ νμΈμ! μ΄λ€ μ μΌλ‘λ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ €κ³ νμ§λ§ λͺ¨λ μλμμ μ€λ₯κ° λ°μν©λλ€.
BUILD FAILED in 38s > Task :app:compileReleaseJavaWithJavac FAILED 33 actionable tasks: 33 executed /Volumes/Datos/GIT/CCASApp/platforms/android/gradlew: Command failed with exit code 1 Error output: Note: /Volumes/Datos/GIT/CCASApp/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin.java:9: error: cannot find symbol import android.support.v4.app.NotificationManagerCompat; ^ symbol: class NotificationManagerCompat location: package android.support.v4.app /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:11: error: cannot find symbol import android.support.v4.app.NotificationCompat; ^ symbol: class NotificationCompat location: package android.support.v4.app /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/de/sitewaerts/cordova/documentviewer/FileProvider.java:3: error: package android.support.v4.content does not exist public class FileProvider extends android.support.v4.content.FileProvider { ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/de/sitewaerts/cordova/documentviewer/DocumentViewerPlugin.java:34: error: package android.support.v4.content does not exist import android.support.v4.content.FileProvider; ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:11: error: package android.support.annotation does not exist import android.support.annotation.RequiresApi; ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:121: error: cannot find symbol @RequiresApi(Build.VERSION_CODES.LOLLIPOP) ^ symbol: class RequiresApi location: class IonicWebViewEngine.ServerClient /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin.java:358: error: cannot find symbol NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context); ^ symbol: class NotificationManagerCompat /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin.java:358: error: cannot find symbol NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context); ^ symbol: variable NotificationManagerCompat /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:144: error: package NotificationCompat does not exist NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId); ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:144: error: package NotificationCompat does not exist NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId); ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:153: error: cannot find symbol .setPriority(NotificationCompat.PRIORITY_MAX); ^ symbol: variable NotificationCompat location: class FirebasePluginMessagingService /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:149: error: package NotificationCompat does not exist .setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody)) ^ /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/org/apache/cordova/firebase/FirebasePluginMessagingService.java:148: error: cannot find symbol .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) ^ symbol: variable NotificationCompat location: class FirebasePluginMessagingService /Volumes/Datos/GIT/CCASApp/platforms/android/app/src/main/java/de/sitewaerts/cordova/documentviewer/DocumentViewerPlugin.java:500: error: cannot find symbol Uri contentUri = FileProvider.getUriForFile( ^ symbol: method getUriForFile(Context,String,File) location: class FileProvider Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 14 errors FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:compileReleaseJavaWithJavac'. > Compilation failed; see the compiler error output for details.
μ΄ λͺ λ ΉμΌλ‘ ν΄κ²°νμ΅λλ€.
ionic cordova platform rm android
ionic cordova plugin rm cordova-plugin-firebase
npm install cordova@9
ionic cordova plugin add https://github.com/dpa99c/cordova-plugin-firebase#GH-1057-April-05-android-build-issue
ionic cordova plugin add cordova-plugin-androidx
ionic cordova plugin add cordova-plugin-androidx-adapter
ionic cordova platform add android@8
κ³ μΉ μ μμμ΅λκΉ? λ€λ₯Έ μ μλ μ΅μ μ λͺ¨λ μλν΄λ λμΌν μ€λ₯κ° λ°μν©λλ€.
μλ νμΈμ! λ€μ λ¨κ³λ‘ μ€λ₯λ₯Ό ν΄κ²°νμ΅λλ€.
cordova: 8.0.0
node: 8.11.0
ionic: 3.20.0
android: 8.0.0
targetBuild: 28
첫 λ²μ§Έ
ionic cordova platform rm android
ionic cordova plugin rm cordova-plugin-firebase
node_modules ν΄λ μ κ±°
μμλλ‘
npm i
cordova plugin add cordova-plugin-firebase-lib
cordova plugin add cordova-plugin-androidx
cordova plugin add cordova-plugin-androidx-adapter
ionic cordova platform add android<strong i="13">@8</strong>
100% ν΄κ²°νμ΅λλ€. λλμ΄ λ¬Έμ λ‘ 2 μΌ μ μ κ±°κΈ°μ μμκ³ μ΄κ²μ΄ ν΄κ²°μ±
μ΄μμ΅λλ€.
APP λΉλκ° 100% μ±κ³΅νμ΅λλ€. APKλ μ±κ³΅μ μΌλ‘ μ€νλ©λλ€.
λμμ΄ λμκΈ°λ₯Ό λ°λλλ€
볡근
rsi
λλ₯Ό μν΄ μΌν©λλ€, κ°μ¬ν©λλ€! κ·Έλ¬λ "ionic cordova νλ¬κ·ΈμΈ add cordova-plugin-android-adapter"κ° μ‘΄μ¬νμ§ μμ΅λλ€.
μ΄κ²μ΄ λ΄κ° ν μΌμ΄λ€
- μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ rm μλλ‘μ΄λ
- μ΄μ¨ μ½λ₯΄λλ° νλ¬κ·ΈμΈ rm cordova-plugin-firebase
- μ΄μ¨ μ½λ₯΄λλ° νλ¬κ·ΈμΈ μΆκ° https://github.com/dpa99c/cordova-plugin-firebase#GH -1057-April-05-android-build-issue
- ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-androidxλ₯Ό μΆκ°ν©λλ€.
- ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-androidx-adapterλ₯Ό μΆκ°ν©λλ€.
- μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ μλλ‘μ΄λ μΆκ°
μ΄μ¨λ κ°μ¬ν©λλ€!
μ΄ λͺ¨λ λ¨κ³λ₯Ό λ°λμ§λ§ μ¬μ ν λΉλλ₯Ό μμ±/μ€νν μ μμ΅λλ€. λ€μ μ€λ₯μ ν¨κ» λΉλ μ€ν¨:
Task :app:compileDebugJavaWithJavac FAILED
app\platforms\android\app\src\main\java\com\ionicframework\cordova\webview\IonicWebViewEngine.java:11: error: package android.support.annotation does not exist
import android.support.annotation.RequiresApi;
^
app\platforms\android\app\src\main\java\org\apache\cordova\firebase\FirebasePlugin.java:9: error: cannot find symbol
import android.support.v4.app.NotificationManagerCompat;
android@8 μ΄ μλ μ½λ₯΄λλ° 9κ°
λλ μ§λ λ©°μΉ λΆν° κ·Έκ²μ λΆμ΄ μκ³ μ΄κ²μ κ³ μΉ νμκ° μμ΅λλ€. λͺ¨λ μ μ.
μλ νμΈμ! λ€μ λ¨κ³λ‘ μ€λ₯λ₯Ό ν΄κ²°νμ΅λλ€.
cordova: 8.0.0 node: 8.11.0 ionic: 3.20.0 android: 8.0.0 targetBuild: 28
첫 λ²μ§Έ
ionic cordova platform rm android ionic cordova plugin rm cordova-plugin-firebase
node_modules ν΄λ μ κ±°
μμλλ‘
npm i cordova plugin add cordova-plugin-firebase-lib cordova plugin add cordova-plugin-androidx cordova plugin add cordova-plugin-androidx-adapter ionic cordova platform add android<strong i="14">@8</strong>
100% ν΄κ²°νμ΅λλ€. λλμ΄ λ¬Έμ λ‘ 2 μΌ μ μ κ±°κΈ°μ μμκ³ μ΄κ²μ΄ ν΄κ²°μ± μ΄μμ΅λλ€.
APP λΉλκ° 100% μ±κ³΅νμ΅λλ€. APKλ μ±κ³΅μ μΌλ‘ μ€νλ©λλ€.λμμ΄ λμκΈ°λ₯Ό λ°λλλ€
볡근
@viniciusbarbosa λ , μ루μ
μ μ¬μ©νκ³ platform/android/cordova-plugin-intercom/app-intercom.gradle μλμ λ€μμ΄ μλ Intercom νλ¬κ·ΈμΈ ꡬμ±μ μ½κ° μ‘°μ ν©λλ€.
`
μ’
μμ± {
// classpath 'com.android.tools.build:gradle:2.3.+'
if (pushType == 'fcm') {
// classpath 'com.google.gms:google-services:3.2.0'
}
}
`
μ£Όμμ λ¬κ³ λλ©΄ λΉλλ₯Ό μ±κ³΅μ μΌλ‘ λ§λ€ μ μμ΅λλ€. νμ§λ§ κΈ°κΈ°μμ μ€ννλ©΄ μ€λ₯ μμ΄ μμνκΈ° μ μ μ±μ΄ μΆ©λν©λλ€. λ¬΄μ¨ μΌμ΄ μΌμ΄λκ³ μμ΅λκΉ?
μλ νμΈμ, @JeetuChoudharyμ λλ€!
λ€μμ μ€ννμ λ: ionic cordova platform add android @ 8, λͺ¨λ νλ¬κ·ΈμΈμ΄ μ±κ³΅μ μΌλ‘ μ€μΉλμμ΅λκΉ?
androidx-adapter νλ¬κ·ΈμΈμ λ€λ₯Έ νλ¬κ·ΈμΈμ λͺ¨λ νΈνμ± λ¬Έμ μ λ΄λΆ μ’ μμ±μ ν΄κ²°ν΄μΌ ν©λλ€.
ν μ€νΈνλ €λ©΄ package.jsonμμ cordova-plugin-intercom νλ¬κ·ΈμΈμ μ κ±°νκ³ λͺ¨λ λ¨κ³λ₯Ό λ°λ³΅ν λ€μ λΉλκ° μ±κ³΅νλμ§ νμΈν©λλ€.
λλ cordova-plugin-intercomμ μ΄ν΄λ³΄κ³ ionic 1 λ° 2μ νΈνλλ€κ³ μΈμ©ν©λλ€. ionicμ λ²μ μ 무μμ λκΉ? κ·Έλ¦¬κ³ μ΄λ€ λ²μ μ νλ¬κ·ΈμΈμ μ¬μ©νκ³ μμ΅λκΉ?
볡근
μ΄κ²μ λλ₯Ό μν΄ μΌν©λλ€.
cordova-plugin-firebase -μ μ₯
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ μ°Ύμκ³ λμ SDK λ²μ 27μ μ μ§ν©λλ€.
μ½λ₯΄λλ° νλ«νΌ μλλ‘μ΄λ μ κ±°
νλ«νΌ/μλλ‘μ΄λ/project.properties μ
λ°μ΄νΈ:
cordova.system.library.3=com.google.android. gms:play-services-tagmanager :16.0.8
cordova.system.library.4=com.google. firebase:firebase -core :16.0.8
cordova.system.library.5=com.google. firebase:firebase -messaging :17.5.0
cordova.system.library.6=com.google. firebase:firebase-config :16.4.1
cordova.system.library.7=com.google. firebase:firebase-perf :16.2.4
νλ«νΌ/Android/app/build.gradle μ λ°μ΄νΈ(μ’ μμ± ~ln 266)
μ»΄νμΌ "com.google.android.gms :play-services-tagmanager :16.0.8"
"com.google. firebase:firebase -core :16.0.8" μ»΄νμΌ
"com.google. firebase:firebase -messaging :17.5.0" μ»΄νμΌ
"com.google. firebase:firebase-config :16.4.1" μ»΄νμΌ
μ»΄νμΌ "com.google. firebase:firebase-perf :16.2.4
μ
λ°μ΄νΈ νλ«νΌ/android/cordova-plugin-firebase/cloud-build.gradle(μ’
μμ±μμ)
μ»΄νμΌ 'com.google. firebase:firebase-auth :16.2.1'
cordova νλ¬κ·ΈμΈ cordova-plugin-intercom μΆκ°
cordova/platforms/android/cordova-plugin-intercom/movilidapp-intercom.gradle μ
λ°μ΄νΈ(~ln 66):
νλ¬κ·ΈμΈ μ μ©: 'com.google.gms.google-services'
μλ νμΈμ! λ€μ λ¨κ³λ‘ μ€λ₯λ₯Ό ν΄κ²°νμ΅λλ€.
cordova: 8.0.0 node: 8.11.0 ionic: 3.20.0 android: 8.0.0 targetBuild: 28
첫 λ²μ§Έ
ionic cordova platform rm android ionic cordova plugin rm cordova-plugin-firebase
node_modules ν΄λ μ κ±°
μμλλ‘npm i cordova plugin add cordova-plugin-firebase-lib cordova plugin add cordova-plugin-androidx cordova plugin add cordova-plugin-androidx-adapter ionic cordova platform add android<strong i="18">@8</strong>
100% ν΄κ²°νμ΅λλ€. λλμ΄ λ¬Έμ λ‘ 2 μΌ μ μ κ±°κΈ°μ μμκ³ μ΄κ²μ΄ ν΄κ²°μ± μ΄μμ΅λλ€.
APP λΉλκ° 100% μ±κ³΅νμ΅λλ€. APKλ μ±κ³΅μ μΌλ‘ μ€νλ©λλ€.
λμμ΄ λμκΈ°λ₯Ό λ°λλλ€λ³΅κ·Ό
@viniciusbarbosa λ , μ루μ μ μ¬μ©νκ³ platform/android/cordova-plugin-intercom/app-intercom.gradle μλμ λ€μμ΄ μλ Intercom νλ¬κ·ΈμΈ ꡬμ±μ μ½κ° μ‘°μ ν©λλ€.
`
μ’ μμ± {// classpath 'com.android.tools.build:gradle:2.3.+' if (pushType == 'fcm') { // classpath 'com.google.gms:google-services:3.2.0' } }
`
μ£Όμμ λ¬κ³ λλ©΄ λΉλλ₯Ό μ±κ³΅μ μΌλ‘ λ§λ€ μ μμ΅λλ€. νμ§λ§ κΈ°κΈ°μμ μ€ννλ©΄ μ€λ₯ μμ΄ μμνκΈ° μ μ μ±μ΄ μΆ©λν©λλ€. λ¬΄μ¨ μΌμ΄ μΌμ΄λκ³ μμ΅λκΉ?
Firebase+μΈν°μ½€
λλ₯Ό μν μ΄ μν!!
μ½λ₯΄λλ°: 8.0.0
λ
Έλ: 10.15.1
μλλ‘μ΄λ: 7.1.4
νκ² λΉλ: 27
cordova-plugin-firebase -μ μ₯
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ μ°Ύμκ³ λμ SDK λ²μ 27μ μ μ§ν©λλ€.
μ½λ₯΄λλ° νλ«νΌ μλλ‘μ΄λ μ κ±°
νλ«νΌ/μλλ‘μ΄λ/project.properties μ
λ°μ΄νΈ:
cordova.system.library.3=com.google.android. gms:play-services-tagmanager :16.0.8
cordova.system.library.4=com.google. firebase:firebase -core :16.0.8
cordova.system.library.5=com.google. firebase:firebase -messaging :17.5.0
cordova.system.library.6=com.google. firebase:firebase-config :16.4.1
cordova.system.library.7=com.google. firebase:firebase-perf :16.2.4
νλ«νΌ/Android/app/build.gradle μ
λ°μ΄νΈ(μ’
μμ± ~ln 266)
μ»΄νμΌ "com.google.android.gms :play-services-tagmanager :16.0.8"
"com.google. firebase:firebase -core :16.0.8" μ»΄νμΌ
"com.google. firebase:firebase -messaging :17.5.0" μ»΄νμΌ
"com.google. firebase:firebase-config :16.4.1" μ»΄νμΌ
μ»΄νμΌ "com.google. firebase:firebase-perf :16.2.4
μ
λ°μ΄νΈ νλ«νΌ/android/cordova-plugin-firebase/cloud-build.gradle(μ’
μμ±μμ)
μ»΄νμΌ 'com.google. firebase:firebase-auth :16.2.1'
cordova νλ¬κ·ΈμΈ cordova-plugin-intercom μΆκ°
μ
λ°μ΄νΈ cordova/platforms/android/cordova-plugin-intercom/movilidapp-intercom.gradle (~ln 66):
νλ¬κ·ΈμΈ μ μ©: 'com.google.gms.google-services'
APP λΉλκ° 100% μ±κ³΅νμ΅λλ€. APKλ μ±κ³΅μ μΌλ‘ μ€νλ©λλ€.
@viniciusbarbosa [email protected] κ³Ό cordova9κ° μμ΅λλ€.
μ, λͺ¨λ νλ¬κ·ΈμΈμ΄ μ±κ³΅μ μΌλ‘ μ€μΉλ λ€μ νλ«νΌ, νλ¬κ·ΈμΈ, node_module λ° package-lock.jsonμ μ κ±°νμ΅λλ€. κ·Έλ° λ€μ μ 곡ν λ¨κ³λ₯Ό λ°λ³΅ν©λλ€.
"@ionic-native/intercom": "^5.8.0"κ³Ό ν¨κ» "cordova-plugin-intercom": "7.0.0"μ΄ μμ΅λλ€. IOSλ λΉλλ₯Ό μμ±νκΈ° μν΄ μ΅μ λ²μ μ μΈν°μ½€μ΄ νμν©λλ€. κ·Έλ μ§ μμΌλ©΄ λ¬Έμ κ° λ°μνκ³ Ionic 3κ° μλ IOSμμ μ μλν©λλ€. λν Ionic 3μμ android λ²μ > [email protected]μΈ κ²½μ° ionic 3μμ androidμμ μλν©λλ€. I λ€λ₯Έ νλ‘μ νΈ μ€ νλμ μμ§λ§ Firebase νλ¬κ·ΈμΈμ΄ μμΌλ―λ‘ μ λλ‘ μλν©λλ€.
package.jsonμμ cordova-plugin-intercom νλ¬κ·ΈμΈμ μ κ±°ν ν ν μ€νΈλ νκ³ ,
μ΄ Firebase νλ¬κ·ΈμΈμ λ΄ λ νλ‘μ νΈλ₯Ό κΉ¨κ³ λλ₯Ό νλ€κ² λ§λλλ€. κ·νμ λ¨κ³λ₯Ό μ¬μ©νμ¬ λ€λ₯Έ νλ‘μ νΈ μ€ νλμμ μ¬μ ν λΉλλ₯Ό μμ±νμ§ μμ΅λλ€. κ·Έλ¦¬κ³ κ·Έ νλ‘μ νΈμλ μΈν°μ½€μ΄ μμ§λ§ λΆμμ΄ μμ΅λλ€.
ν΄λΉ νλ‘μ νΈμμ λΉλνλ λμ λ€μ μ€λ₯κ° λ°μν©λλ€.
`8μ΄ λ§μ λΉλ μ€ν¨
/platforms/android/gradlew: μ’
λ£ μ½λ 1 μ€λ₯ μΆλ ₯μΌλ‘ λͺ
λ Ή μ€ν¨:
μ°Έκ³ : /platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.javaλ λ μ΄μ μ¬μ©λμ§ μλ APIλ₯Ό μ¬μ©νκ±°λ μ¬μ μν©λλ€.
μ°Έκ³ : μμΈν λ΄μ©μ - Xlint:deprecation μ λ€μ μ»΄νμΌνμμμ€.
/platforms/android/app/src/main/AndroidManifest.xml xml:36 :5-74 μ€λ₯:
sdk:minSdkVersion 16μ λΌμ΄λΈλ¬λ¦¬ [:CordovaLib]μ μ μΈλ λ²μ 19λ³΄λ€ μμ μ μμ΅λλ€.
/platforms/android/CordovaLib/build/intermediates/library_manifest/debug/AndroidManifest.xml λΌμ΄λΈλ¬λ¦¬κ° 16μμ μ¬μ©ν μ μλ APIλ₯Ό μ¬μ©ν μ μμΌλ―λ‘
μ μ: minSdkκ° μ΅λ 16μΈ νΈν κ°λ₯ν λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμμμ€.
λλ μ΄ νλ‘μ νΈμ minSdk λ²μ μ 19 μ΄μμΌλ‘ λ리μμμ€.
λλ tools:overrideLibrary= "org.apache.cordova"λ₯Ό μ¬μ©νμ¬ κ°μ μ¬μ©(λ°νμ μ€λ₯λ‘ μ΄μ΄μ§ μ μμ)`
android/app/build.gradleμ minSdk λ²μ μ μΆκ°νμ΅λλ€. νμ§λ§ μ΄μ΄ μλ€
κ·νμ μκ°κ³Ό λμμ κ°μ¬λ립λλ€
μ€λͺ λ λ¨κ³λ₯Ό λ€μ μλνμ§λ§ Android λ²μ μ΄ 7.1.4μΈ κ²½μ° λ€μμ μ¬μ©ν΄μΌ ν©λλ€. cordova plugin add [email protected]
μμΈν λ΄μ©μ https://github.com/wizpanda/cordova-plugin-firebase-libλ₯Ό μ°Έμ‘°νμΈμ.
λ¬΄μ¨ μΌμ΄ μΌμ΄λλμ§ λ§ν΄λ΄
@viniciusbarbosa λΉλλ μ±κ³΅νμ§λ§ Android SDKλ μλ λ©μμ§μ ν¨κ» μ€ν¨ν©λλ€.
minsdkversionμ μ΄λνμ¬ νμΌ λΉλ λ° νλ‘μ νΈ λκΈ°ν
@nsksaisaravana μλλ‘μ΄λ μ€νλμ€μμ μ€ννλ©΄ κ·Έλ κ² νλΌκ³ ν©λλ€. λͺ λ Ή μ€μ ν΅ν΄ μ€ννλ©΄ μλν©λλ€.
μλ νμλκΉ....
14μ΄ λ§μ κ΅¬μΆ μ€ν¨
μ€λ₯: appfolder/platforms/android/gradlew: μ’
λ£ μ½λ 1 μ€λ₯ μΆλ ₯μΌλ‘ λͺ
λ Ή μ€ν¨:
μ°Έκ³ : /appfolder/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.javaλ λ μ΄μ μ¬μ©λμ§ μλ APIλ₯Ό μ¬μ©νκ±°λ μ¬μ μν©λλ€.
μ°Έκ³ : μμΈν λ΄μ©μ - Xlint:deprecation μ λ€μ μ»΄νμΌνμμμ€.
FAILURE: μμΈμ ν¨κ» λΉλμ μ€ν¨νμ΅λλ€.
μλ μμ€ν μ 보..
ionic1 νλ μ μν¬λ₯Ό μ¬μ©νκ³ μμ΅λλ€.
μλνλ€
μ½λ₯΄λλ° νλ«νΌ μΆκ° [email protected]
μ½λ₯΄λλ° νλ¬κ·ΈμΈ νΈ
μ½λ₯΄λλ° νλ¬κ·ΈμΈ Firebase
μ½λ₯΄λλ° νλ¬κ·ΈμΈ firebasex
μ½λ₯΄λλ° νλ¬κ·ΈμΈ firebasex-lib
μ½λ₯΄λλ° νλ¬κ·ΈμΈ androidx
μ½λ₯΄λλ° νλ¬κ·ΈμΈ androidx-adapter
..
λλ κ±°μ githubμμ μ루μ μ μλνμ§λ§ μ€ν¨νμ΅λλ€.
λμμ£ΌμΈμ
μλ νμΈμ @toFreshMilkμ λλ€.
3κ°μ νλ¬κ·ΈμΈμ λμμ μ¬μ©νλ©΄ λ¬Έμ κ° λ°μν©λλ€.
μ½λ₯΄λλ° νλ¬κ·ΈμΈ Firebase
μ½λ₯΄λλ° νλ¬κ·ΈμΈ firebasex
μ½λ₯΄λλ° firebasex-lib νλ¬κ·ΈμΈ
λ΄κ° μ±κ³΅ν μλλ cordova νλ¬κ·ΈμΈ firebasex-libλ₯Ό μ¬μ©ν κ²μ
λλ€.
μ¬κΈ°μ μ€λͺ
λ μμλ₯Ό λ°λ₯΄λ κ²μ΄ μ€μν©λλ€(https://github.com/arnesson/cordova-plugin-firebase/issues/1084#issuecomment-505420901).
μμΈν λ΄μ©μ μ¬κΈ°(https://github.com/wizpanda/cordova-plugin-firebase-lib)λ₯Ό μ°Έμ‘°νμΈμ.
MinSdk = 19 λ° TargetSdk = 28
μ½λ₯΄λλ°: 8.0.0
λ
Έλ: 8.11.0
μ΄μ¨: 3.20.0
μλλ‘μ΄λ: 8.0.0
νκ² λΉλ: 28
λμμ΄ λμκΈ°λ₯Ό λ°λλλ€
볡근
minsdkλ²μ
μλ
νμΈμ, @nsksaisaravanaμ
λλ€!
MinSdk = 19 e TargetSdk = 28.
μ΄κ²μΌλ‘ μλ
typescriptλ₯Ό μ¬μ©νμ¬ ionic2μμ μ΄ λΌμ΄λΈλ¬λ¦¬(cordova-plugin-firebasex-lib)λ₯Ό μ¬μ©ν μ μμ΅λκΉ? μ΄ μμ νμ μ΄λ»κ² μκ²Όμ΅λκΉ? μ§λ¬Έ μ£μ‘ν©λλ€. π
ionic cordova νλ¬κ·ΈμΈ cordova-plugin-firebase μ κ±°
μ΄μ¨ μ½λ₯΄λλ° νλ¬κ·ΈμΈ μΆκ° https://github.com/dpa99c/cordova-plugin-firebase#GH -1057-April-05-android-build-issue
ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-android-adapterλ₯Ό μΆκ°ν©λλ€.
ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-androidx-adapterλ₯Ό μΆκ°ν©λλ€.μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ rm μλλ‘μ΄λ
μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ μΆκ° [email protected]μ΄κ²μ Firebase νλ¬κ·ΈμΈμ μ΄μ λ²μ μ μ¬μ©νκΈ° λλ¬Έμ μ€λμ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
ionic2λ₯Ό μ¬μ©νκ³ μμ΅λκΉ? js νλ¬κ·ΈμΈμ typscriptλ‘ κ°μ Έμ€λ λ°©λ²μ 무μμ λκΉ?
μλ νμΈμ @toFreshMilkμ λλ€.
3κ°μ νλ¬κ·ΈμΈμ λμμ μ¬μ©νλ©΄ λ¬Έμ κ° λ°μν©λλ€.
μ½λ₯΄λλ° νλ¬κ·ΈμΈ Firebase
μ½λ₯΄λλ° νλ¬κ·ΈμΈ firebasex
μ½λ₯΄λλ° firebasex-lib νλ¬κ·ΈμΈλ΄κ° μ±κ³΅ν μλλ cordova νλ¬κ·ΈμΈ firebasex-libλ₯Ό μ¬μ©ν κ²μ λλ€.
μ¬κΈ°μ μ€λͺ λ μμλ₯Ό λ°λ₯΄λ κ²μ΄ μ€μν©λλ€( #1084 (comment) ),
μμΈν λ΄μ©μ μ¬κΈ°(https://github.com/wizpanda/cordova-plugin-firebase-lib)λ₯Ό μ°Έμ‘°νμΈμ.MinSdk = 19 λ° TargetSdk = 28
μ½λ₯΄λλ°: 8.0.0
λ Έλ: 8.11.0
μ΄μ¨: 3.20.0
μλλ‘μ΄λ: 8.0.0
νκ² λΉλ: 28λμμ΄ λμκΈ°λ₯Ό λ°λλλ€
볡근
κ°μ¬νλ€.
νμ§λ§ λλ μ΄λ―Έ λΉμ μ μ‘°μΈμ μλνμ΅λλ€.
κ·Έλ₯ ionic1μ μ¬μ©ν©λλ€.
λν,
3κ°μ νλ¬κ·ΈμΈμ λμμ μ¬μ©νλ©΄ λ¬Έμ κ° λ°μν©λλ€.
μ½λ₯΄λλ° νλ¬κ·ΈμΈ Firebase
μ½λ₯΄λλ° νλ¬κ·ΈμΈ firebasex
μ½λ₯΄λλ° firebasex-lib νλ¬κ·ΈμΈ
λλμ΄ νλ¬κ·ΈμΈμ κ°κ° μλνμ΅λλ€. μλ ν¨κ».
λμ κ²½μ°μλ,
λλ cordova μ±μΌλ‘ testappμ λ§λ€μμ΅λλ€.
κ·Έλ° λ€μ μ€λΉνμμμ€ ( firebase-lib, androidx, androidx μ΄λν° .. ).
νμ§λ§ λΉλ μ€ν¨...
λ..? λ¬΄μ¨ λ¬Έμ ?
@toFreshMilk μ½λ₯΄λλ° μ 보λ₯Ό λΆμ¬λ£μΌμΈμ.
typescriptλ₯Ό μ¬μ©νμ¬ ionic2μμ μ΄ λΌμ΄λΈλ¬λ¦¬(cordova-plugin-firebasex-lib)λ₯Ό μ¬μ©ν μ μμ΅λκΉ? μ΄ μμ νμ μ΄λ»κ² μκ²Όμ΅λκΉ? μ§λ¬Έ μ£μ‘ν©λλ€. π
μ, μ΄κ²μ μ¬μ©ν μ μμ΅λλ€. Cordova νκ²½ λ²μ μ
μ λ μ΄ λΆλΆμμ μ΄λ €μμ κ²ͺκ³ μμ΅λλ€.
Ionic:
Ionic CLI : 5.2.1 (C:\Users\DELL\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework : @ionic/angular 4.6.0
@angular-devkit/build-angular : 0.13.9
@angular-devkit/schematics : 7.3.9
@angular/cli : 7.3.9
@ionic/angular-toolkit : 1.5.1
Cordova:
Cordova CLI : 9.0.0 ([email protected])
Cordova Platforms : android 8.0.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 5 other plugins)
Utility:
cordova-res : 0.5.1
native-run : 0.2.7
System:
(C:\Program Files (x86)\Android\android-sdk)
NodeJS : v11.2.0 (C:\Program Files\nodejs\node.exe)
npm : 6.4.1
OS : Windows 10
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { Firebase } from 'cordova-plugin-firebase-lib/www/firebase';
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
providers: [
StatusBar,
SplashScreen,
Firebase,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent]
})
export class AppModule {}
import { Component } from '@angular/core';
import { Platform } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { Firebase } from 'cordova-plugin-firebase-lib/www/firebase';
@Component({
selector: 'app-root',
templateUrl: 'app.component.html'
})
export class AppComponent {
constructor(
private platform: Platform,
private splashScreen: SplashScreen,
private statusBar: StatusBar,
private firebase: Firebase
) {
this.initializeApp();
}
initializeApp() {
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.splashScreen.hide();
this.initFirebase();
});
}
initFirebase() {
this.firebase.getToken(function(token) {
alert(`The token is ${token}`)
}, function(error) {
alert('Error getting token: ' + JSON.stringify(error))
});
}
}
./node_modules/cordova-plugin-firebase-lib/www/firebase.jsμ μ€λ₯λͺ¨λμ μ°Ύμ μ μμ: μ€λ₯: 'C:\Users\DELL\source\repos\myproject\node_modules\cordova-plugin-firebase-lib\www'μ 'cordova/exec'λ₯Ό νμΈν μ μμ΅λλ€.
μλ νμΈμ @leodianoμ λλ€!
cordova-plugin-firebase νλ¬κ·ΈμΈμ cordova-plugin-firebase-libλ‘ κ΅μ²΄νκ³ androidx λ° androidx-adapterλ μ¬μ©ν΄μΌ ν©λλ€.
μ΄ μ견μ λν λ΄ μ§μΉ¨μ λ°λ₯΄μμμ€: https://github.com/arnesson/cordova-plugin-firebase/issues/1084#issuecomment-505420901)
Android Android λ²μ μ λ°λΌ μ€μΉν΄μΌ νλ firebase-lib λ²μ μ νμΈνμΈμ. μ¬κΈ°λ₯Ό λ°λ₯΄μμμ€: https://github.com/wizpanda/cordova-plugin-firebase-lib
λ΄κ° μΈμ©ν μ€λͺ μ μ€λͺ λ λ¨κ³λ₯Ό μ ννκ² μλνλ©΄ μ±κ³΅ν κ²μ λλ€. Google μ λ°μ΄νΈ ν 2μΌ λμ μ΄ μμ μ μννμΌλ©° λ§μΉ¨λ΄ μ΄ μ루μ μ΄ μμ μ μ΄λΌλ κ²μ μμμ΅λλ€. λλ κ·Έκ²μ μ¬λ¬ λ² λ³΅μ ν μμμμ΅λλ€.
μλνκ³ λ§ν΄. μ§λ¬Έμ΄ μμΌλ©΄ λ§νμμμ€.
볡근
μλ νμΈμ @leodianoμ λλ€!
cordova-plugin-firebase νλ¬κ·ΈμΈμ cordova-plugin-firebase-libλ‘ κ΅μ²΄νκ³ androidx λ° androidx-adapterλ μ¬μ©ν΄μΌ ν©λλ€.
μ΄ λκΈμ λν λ΄ μ§μλ₯Ό λ°λ₯΄μμμ€: #1084 (comment) )Android Android λ²μ μ λ°λΌ μ€μΉν΄μΌ νλ firebase-lib λ²μ μ νμΈνμΈμ. μ¬κΈ°λ₯Ό λ°λ₯΄μμμ€: https://github.com/wizpanda/cordova-plugin-firebase-lib
λ΄κ° μΈμ©ν μ€λͺ μ μ€λͺ λ λ¨κ³λ₯Ό μ ννκ² μλνλ©΄ μ±κ³΅ν κ²μ λλ€. Google μ λ°μ΄νΈ ν 2μΌ λμ μ΄ μμ μ μννμΌλ©° λ§μΉ¨λ΄ μ΄ μ루μ μ΄ μμ μ μ΄λΌλ κ²μ μμμ΅λλ€. λλ κ·Έκ²μ μ¬λ¬ λ² λ³΅μ ν μμμμ΅λλ€.
μλνκ³ λ§ν΄. μ§λ¬Έμ΄ μμΌλ©΄ λ§νμμμ€.
볡근
@viniciusbarbosa λ§ν¬λμΈμ μ΄λμ₯μ 보λμ΅λλ€. λ μ€λλ₯΄λ μΉΌλΌμμ€. λΉμ μ΄ λλ₯Ό λμΈ μ μλ€λ©΄. 3μΌμ§Έμ λλ€.
μ€λͺ λ λ¨κ³λ₯Ό λ€μ μλνμ§λ§ Android λ²μ μ΄ 7.1.4μΈ κ²½μ° λ€μμ μ¬μ©ν΄μΌ ν©λλ€. cordova plugin add [email protected]
μμΈν λ΄μ©μ https://github.com/wizpanda/cordova-plugin-firebase-libλ₯Ό μ°Έμ‘°νμΈμ.
λ¬΄μ¨ μΌμ΄ μΌμ΄λλμ§ λ§ν΄λ΄
@viniciusbarbosa μΈν°μ½€μ μ κ±°νλ©΄ μλν©λλ€. μ΄μ μΈν°μ½€ νλ¬κ·ΈμΈμ μ κ±°νκ³ Androidμμ μλμΌλ‘ ꡬμ±νμ΅λλ€.
λΉμ μ λμκ³Ό μκ°μ κ°μ¬λ립λλ€!
κ³ μ₯λ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
https://github.com/arnesson/cordova-plugin-firebase/blob/5a3c08d4e2e9d372894d778ca8c8c3d7c3d72d0d/src/android/build.gradle#L20Google Firebase μ λ°μ΄νΈ - 2019λ 6μ 17μΌ
https://firebase.google.com/support/release-notes/android#version_1621μ΄ λ¦΄λ¦¬μ€μμλ λ€μ λΌμ΄λΈλ¬λ¦¬κ° μ λ°μ΄νΈλμμ΅λλ€.
μΈμ¦ λ²μ 18.0.0μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ μ°Ύμκ³ λμ SDK λ²μ 27μ μ μ§ν©λλ€.
- νλ μ 리:
platforms/android
μμ ionic cordova build android
(μ€ν¨)platforms/android/project.properties
μ λ°μ΄νΈ:cordova.system.library.3=com.google.android.gms:play-services-tagmanager:16.0.8 cordova.system.library.4=com.google.firebase:firebase-core:16.0.8 cordova.system.library.5=com.google.firebase:firebase-messaging:17.5.0 cordova.system.library.6=com.google.firebase:firebase-config:16.4.1 cordova.system.library.7=com.google.firebase:firebase-perf:16.2.4
platforms/android/app/build.gradle
μ λ°μ΄νΈ(μ’ μμ± ~ln 266)compile "com.google.android.gms:play-services-tagmanager:16.0.8" compile "com.google.firebase:firebase-core:16.0.8" compile "com.google.firebase:firebase-messaging:17.5.0" compile "com.google.firebase:firebase-config:16.4.1" compile "com.google.firebase:firebase-perf:16.2.4"
platforms/android/cordova-plugin-firebase/cloud-build.gradle
μ λ°μ΄νΈ(μ’ μμ±μμ)compile 'com.google.firebase:firebase-auth:16.2.1'
ionic cordova build android
λλ
cd platforms/android
./gradlew build
μ΄κ²μ λλ₯Ό tnxλ‘ μλμν΅λλ€ !!
@viniciusbarbosa @JeetuChoudhary κΆμ₯ λ¨κ³λ₯Ό λ°λμ΅λλ€. Androidμμλ μ λΉλλμ§λ§ μλ¦Όμ΄ μλνμ§ μμ΅λλ€.
IOSμμ λΉλνκ³ νλ¬κ·ΈμΈ(cordova νλ¬κ·ΈμΈμ cordova-plugin-firebase-lib μΆκ°)μ 건λλ°κ³ Cordova λ²μ 9.0μ μμν©λλ€.
@nsksaisaravana λΉμ μ μ½λ₯΄λλ° λ²μ μ 무μμ
λκΉ?
μ½λ₯΄λλ° <= 8.1.1μΈ κ²½μ° μ½λ₯΄λλ° νλ¬κ·ΈμΈμ μ¬μ©νμ¬ [email protected]μ μΆκ° νμμμ€.
https://github.com/wizpanda/cordova-plugin-firebase-lib/ μμ μμΈν 보기
@viniciusbarbosa μ¦κ°μ μΈ μ 보λ₯Ό
μλ¦Όμ΄ μλνμ§ μμ΅λλ€.
Cordova-plugin-firebasex
2019λ
6μ 19μΌ μμμΌ μ€ν 1μ 44λΆ Exusmultimedia - Exus.com.co <
[email protected]>μ λ€μκ³Ό κ°μ΄ μΌμ΅λλ€.
ionic cordova νλ¬κ·ΈμΈ cordova-plugin-firebase μ κ±°
μ΄μ¨ μ½λ₯΄λλ° νλ¬κ·ΈμΈ μΆκ°
https://github.com/dpa99c/cordova-plugin-firebase#GH -1057-April-05-android-build-issue
ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-android-adapterλ₯Ό μΆκ°ν©λλ€.
ionic cordova νλ¬κ·ΈμΈμ cordova-plugin-androidx-adapterλ₯Ό μΆκ°ν©λλ€.
μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ rm μλλ‘μ΄λ
μ΄μ¨ μ½λ₯΄λλ° νλ«νΌ μΆκ° [email protected]
μ΄κ²μ μ€λμ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€. μλ§λ μ΄μ λ²μ μ μ¬μ©νκΈ° λλ¬ΈμΌ κ²μ λλ€
Firebase νλ¬κ·ΈμΈ λ²μ κ°μ¬ν©λλ€! @ChronouSphere https://github.com/ChronouSphereλ₯Ό μλ νμ΅λλ€.
첫 λ²μ§Έ λ¨κ³μ΄μ§λ§ μ¬μ ν [email protected]μ μμκ³ μ€μΉν λ
android@8 λΉλκ° μ±κ³΅μ μΌλ‘ μλ£λμμ΅λλ€ πλλ₯Ό μν΄ μλνμ§ μμμ΅λλ€ :(, λ€λ₯Έ μμ΄λμ΄?
β
λΉμ μ΄ λκΈμ λ¬μκΈ° λλ¬Έμ μ΄κ²μ λ°λ κ²μ λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ³ GitHubμμ νμΈνμΈμ.
https://github.com/arnesson/cordova-plugin-firebase/issues/1084?email_source=notifications&email_token=AD2I3ZCZZ6AEMQUAS2RO7JLP3JV57A5CNFSM4HZD6YM2YY3PNVWWK3TUL52HS4DFXVEX
λλ μ€λ λ μμκ±°
https://github.com/notifications/unsubscribe-auth/AD2I3ZBGT3QWUEXYDTJIOXLP3JV57ANCNFSM4HZD6YMQ
.
@nsksaisaravana λ§ν¬λμΈμ μ λ₯Ό μΆκ°νκ³ μ±ν μ ν΅ν΄ μ΄μΌκΈ°ν΄ μ£Όμλ©΄ λμλλ¦¬κ² μ΅λλ€. https://www.linkedin.com/in/viniciusbarbosa4/
@viniciusbarbosa ν° λμμ μ£Όμ μ κ°μ¬ν©λλ€. Android SDKμμ νμΈνλλ° μ λλ‘ μλνμ§ μμμ§λ§ μ€ν μ΄μ λ°°ν¬νλλ° μ λλ‘ μλν©λλ€.
λΉμ μ λλ₯Ό μ¬λ¬ λ ꡬν΄μ€¬μ΅λλ€. @viniciusbarbosa
@viniciusbarbosa IOSμμ μνν΄μΌ νλ λ€λ₯Έ λ¨κ³κ° μλμ???
λλ μ€λ₯ μλμμμ΄
'cordova-plugin-firebase-lib' μ€μΉ μ€ν¨: μ μλμ§ μμ
CordovaError: μ€λ₯κ° μλ μ½μμ΄ κ±°λΆλμμ΅λλ€: '/Library/Ruby/Gems/2.3.0/gems/claide-1.0.2/lib/claide/command.rb:439:in help!\': \u001b[31m[!] You cannot run CocoaPods as root.\u001b[39m (CLAide::Help)\n\n\u001b[4mUsage:\u001b[24m\n\n $ \u001b[32mpod\u001b[39m \u001b[32mCOMMAND\u001b[39m\n\n CocoaPods, the Cocoa library package manager.\n\n\u001b[4mCommands:\u001b[24m\n\n \u001b[32m+ cache\u001b[39m Manipulate the CocoaPods cache\n \u001b[32m+ env\u001b[39m Display pod environment\n \u001b[32m+ init\u001b[39m Generate a Podfile for the current directory\n \u001b[32m+ install\u001b[39m Install project dependencies according to versions from a\n Podfile.lock\n \u001b[32m+ ipc\u001b[39m Inter-process communication\n \u001b[32m+ lib\u001b[39m Develop pods\n \u001b[32m+ list\u001b[39m List pods\n \u001b[32m+ outdated\u001b[39m Show outdated project dependencies\n \u001b[32m+ repo\u001b[39m Manage spec-repositories\n \u001b[32m+ setup\u001b[39m Setup the CocoaPods environment\n \u001b[32m+ spec\u001b[39m Manage pod specs\n \u001b[32m+ update\u001b[39m Update outdated project dependencies and create new Podfile.lock\n\n\u001b[4mOptions:\u001b[24m\n\n \u001b[34m--silent\u001b[39m Show nothing\n \u001b[34m--version\u001b[39m Show the version of the tool\n \u001b[34m--verbose\u001b[39m Show more debugging information\n \u001b[34m--no-ansi\u001b[39m Show output without ANSI codes\n \u001b[34m--help\u001b[39m Show help banner of specified command\n\tfrom /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.6.0/lib/cocoapods/command.rb:47:in
run\'\ n\tfrom /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.6.0/bin/ pod:55 :in <top (required)>\'\n\tfrom /usr/local/bin/pod:22:in
load\'\n\tfrom /usr/local/bin/ pod :22 :in `
cli.catch.errμμ (/usr/local/lib/node_modules/cordova/bin/cordova:29:15)
~μ
process._tickCallbackμμ (λ΄λΆ/νλ‘μΈμ€/next_tick.js:189:7)
@nsksaisaravana firebase -lib λμ https://github.com/dpa99c/cordova-plugin-firebase λ₯Ό μλν μ μμ΅λλ€.
@nsksaisaravana
Cordova-iosμ λ²μ μ λ³΄κ³ μ€μΉν΄μΌ νλ νλ¬κ·ΈμΈ λ²μ μ νμΈνμμμ€.
https://github.com/wizpanda/cordova-plugin-firebase-lib/
κ³ μ₯λ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
https://github.com/arnesson/cordova-plugin-firebase/blob/5a3c08d4e2e9d372894d778ca8c8c3d7c3d72d0d/src/android/build.gradle#L20Google Firebase μ λ°μ΄νΈ - 2019λ 6μ 17μΌ
https://firebase.google.com/support/release-notes/android#version_1621μ΄ λ¦΄λ¦¬μ€μμλ λ€μ λΌμ΄λΈλ¬λ¦¬κ° μ λ°μ΄νΈλμμ΅λλ€.
μΈμ¦ λ²μ 18.0.0μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ μ°Ύμκ³ λμ SDK λ²μ 27μ μ μ§ν©λλ€.
- νλ μ 리:
platforms/android
μμ ionic cordova build android
(μ€ν¨)platforms/android/project.properties
μ λ°μ΄νΈ:cordova.system.library.3=com.google.android.gms:play-services-tagmanager:16.0.8 cordova.system.library.4=com.google.firebase:firebase-core:16.0.8 cordova.system.library.5=com.google.firebase:firebase-messaging:17.5.0 cordova.system.library.6=com.google.firebase:firebase-config:16.4.1 cordova.system.library.7=com.google.firebase:firebase-perf:16.2.4
platforms/android/app/build.gradle
μ λ°μ΄νΈ(μ’ μμ± ~ln 266)compile "com.google.android.gms:play-services-tagmanager:16.0.8" compile "com.google.firebase:firebase-core:16.0.8" compile "com.google.firebase:firebase-messaging:17.5.0" compile "com.google.firebase:firebase-config:16.4.1" compile "com.google.firebase:firebase-perf:16.2.4"
platforms/android/cordova-plugin-firebase/cloud-build.gradle
μ λ°μ΄νΈ(μ’ μμ±μμ)compile 'com.google.firebase:firebase-auth:16.2.1'
ionic cordova build android
λλ
cd platforms/android
./gradlew build
λλ λκ°μ΄νμ§λ§ μ¬μ ν μ€λ₯κ° λ°μν©λλ€.
κ°μ₯ μ μ©ν λκΈ
κ³ μ₯λ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
https://github.com/arnesson/cordova-plugin-firebase/blob/5a3c08d4e2e9d372894d778ca8c8c3d7c3d72d0d/src/android/build.gradle#L20
Google Firebase μ λ°μ΄νΈ - 2019λ 6μ 17μΌ
https://firebase.google.com/support/release-notes/android#version_1621
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ μ°Ύμκ³ λμ SDK λ²μ 27μ μ μ§ν©λλ€.
νλ μ 리:
platforms/android
μμ ionic cordova build android
(μ€ν¨)platforms/android/project.properties
μ λ°μ΄νΈ:platforms/android/app/build.gradle
μ λ°μ΄νΈ(μ’ μμ± ~ln 266)platforms/android/cordova-plugin-firebase/cloud-build.gradle
μ λ°μ΄νΈ(μ’ μμ±μμ)ionic cordova build android
λλ
cd platforms/android
./gradlew build