๋๋ ์ ์์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ๊ณ ์์๋ค. ์ค๋ ์ฑ๊ณต์ ์ผ๋ก 10๋ฒ ๋ง๋ค์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋๋ ๋ค์ ์ปดํ์ผ๋์๊ณ ์ด์ Firebase ํ๋ฌ๊ทธ์ธ์ด ํ๋ก์ ํธ์ ์์ ๋ ๋ ์ด์ ์คํํ ์ ์์ต๋๋ค.
ํ๋ฌ๊ทธ์ธ์ ์ ๊ฑฐํ๋ฉด ํ๋ก์ ํธ๊ฐ ์คํ๋ฉ๋๋ค.
[email protected]๋ฅผ ์ฌ์ฉ ์ค์ ๋๋ค(8.0.0์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์์).
๋ค์ ๋น๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
:app:processDebugResources/home/sandro/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/c9104c96e21bf9c9613f4661f4e5d49e/res/values/values.xml:246:5-69: AAPT: error: resource android:attr/fontVariationSettings not found.
/home/sandro/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/c9104c96e21bf9c9613f4661f4e5d49e/res/values/values.xml:246:5-69: AAPT: error: resource android:attr/ttcIndex not found.
/home/user/my_cordova_project/platforms/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:244: error: resource android:attr/fontVariationSettings not found.
/home/user/my_cordova_project/platforms/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:244: error: resource android:attr/ttcIndex not found.
error: failed linking references.
Failed to execute aapt
com.android.ide.common.process.ProcessException: Failed to execute aapt
at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:796)
at com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:551)
at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:285)
at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
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.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
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.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
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:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:482)
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:794)
... 48 more
Caused by: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:462)
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
at com.android.builder.internal.aapt.v2.QueueableAapt2.lambda$makeValidatedPackage$1(QueueableAapt2.java:179)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
... 1 more
Caused by: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
at com.android.builder.png.AaptProcess$NotifierProcessOutput.handleOutput(AaptProcess.java:463)
at com.android.builder.png.AaptProcess$NotifierProcessOutput.err(AaptProcess.java:415)
at com.android.builder.png.AaptProcess$ProcessOutputFacade.err(AaptProcess.java:332)
at com.android.utils.GrabProcessOutput$1.run(GrabProcessOutput.java:104)
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processDebugResources'.
๊ฐ์ ๋ฌธ์ ๊ฐ ์๋ ๋ค๋ฅธ ์ฌ๋์ด ์์ต๋๊น? ๊ฐ์ฌ ํด์.
์ด๋ฏธ 3์ผ ๋์ ๊ฐ์ ๋ฌธ์ ์ ์จ๋ฆํ๊ณ ์์ต๋๋ค
์๋ ํ์ธ์ @SandroMoretti ,
๋๋ ๊ทธ ๋ฌธ์ ๋ก ํ๋ฃจ ์ข ์ผ ์ธ์ ์์ต๋๋ค ... ๋ด ํ๋ก์ ํธ๋ Cordova 8๋ก ์ ๋ฐ์ดํธ ํ ์ ์์ผ๋ฏ๋ก Ionic 4๋ก ์ด์ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค (Ionic 3์์ ์๋ฃ). ๊ทธ๋์ ์ฝ๋ฅด๋๋ฐ 8๊ณผ ์์ด์ค๋ 4์์ ๋ง์ ์ค๋ฅ ๋์ ๊ฐ์ ์ง์ ์ ๋๋ฌํ์ต๋๋ค... ๋์ด ์ฌ๋ฆฌ์ ์ค๋ฅ๋ ์๋๋ก์ด๋ 28๊ณผ ๊ด๋ จ์ด ์๋๋ฐ ๊ทธ ์ด์ ๋ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ 'com.google. firebase:firebase-X :+'๋ฅผ ์ข ์์ฑ์ผ๋ก ์ฌ์ฉํ๊ณ ์ด์ Firebase๋ Android 28์ ๊ฐ์ ๋ก ์ฌ์ฉํ๋ FB 6์ 17์ผ ์๋ณด๋ฅผ ์ํํ์ต๋๋ค... ์ข ์์ฑ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์๋์ง ํ์ธํ์ง๋ง ํญ์ ๋ค๋ฅธ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. .
๋์์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค!
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ํ๋ฌ๊ทธ์ธ์ด ๋ฐฉ๊ธ ์
๋ฐ์ดํธํ com.google.firebase:firebase-auth:+
์ ์์กดํ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
https://developers.google.com/android/guides/releases
API <28์ ๋ํ ์ง์ ์ค๋จ
๊ฐ์ ๋ฌธ์ ๋! ๋ ์ด์ ์๋๋ก์ด๋์ ๋น๋ํ ์ ์์ต๋๋ค.
๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์ด์ ์ฑ์ ์ปดํ์ผํ ์ ์๊ณ ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
:app:processDebugResources
C:\Users\mmzep\.gradle\caches\transforms-1\files-1.1\core-1.0.0.aar\73b4a83ab5e76f20c84a66b1c8444d08\res\values\values.xml:133:5-70: AAPT: error: resource android:attr/fontVariationSettings not found.
C:\Users\mmzep\.gradle\caches\transforms-1\files-1.1\core-1.0.0.aar\73b4a83ab5e76f20c84a66b1c8444d08\res\values\values.xml:133:5-70: AAPT: error: resource android:attr/ttcIndex not found.
C:\Users\mmzep\Desktop\mario\Seven\SevenPassengerApp\platforms\android\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:95: error: resource android:attr/fontVariationSettings not found.
C:\Users\mmzep\Desktop\mario\Seven\SevenPassengerApp\platforms\android\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:95: error: resource android:attr/ttcIndex not found.
error: failed linking references.
Failed to execute aapt
com.android.ide.common.process.ProcessException: Failed to execute aapt
at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:796)
at com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:551)
at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:285)
at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
๋๋ ์ ๋ง ์ด๋ฐํ ๋ง๊ฐ์ผ์ ์๊ณ ์ด๊ฒ์ ์ ์ ์ผ๋ก Firebase์ ์์กดํ๊ธฐ ๋๋ฌธ์ ๋ด ํ๋ก์ ํธ๋ฅผ ์ค๋จ์ํต๋๋ค.
์ด ์กฐ๋ฆฌ๋ฒ์ด ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค. https://github.com/arnesson/cordova-plugin-firebase/issues/1081#issuecomment -503041641
๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. https://firebase.google.com/support/release-notes/android#20180523 ๋ฐ cordova android์์ 8.0.0์ผ๋ก ๋ชจ๋ ์ข ์์ฑ์ ์ ๋ฐ์ดํธํ๋ ค๊ณ ์๋ํ์ง๋ง ์ฑ๊ณตํ์ง ๋ชปํ์ต๋๋ค. cordova-plugin-firebase๋ฅผ ์ ๊ฑฐํ๋ฉด ์๋ํฉ๋๋ค. ๋ด๊ฐ ์ป๋ ์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Dependency failing: com.google.android.gms:play-services-tagmanager-api:15.0.2 -> com.google.android.gms:play-services-m
easurement-base@[15.0.2], but play-services-measurement-base version was 15.0.4.
The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
ifact with the issue.
-- Project 'app' depends onto com.google.android.gms:[email protected]
-- Project 'app' depends onto com.google.firebase:[email protected]
-- Project 'app' depends onto com.google.android.gms:[email protected]
-- Project 'app' depends onto com.google.android.gms:[email protected]
-- Project 'app' depends onto com.google.android.gms:[email protected]
-- Project 'app' depends onto com.google.android.gms:[email protected]
๋ฐ๋ผ์ Firebase๋ก ๋น๋ํ ์ ์์ต๋๋ค.
์ค๋ ์์นจ์ ๋๋ gradle์ด ์๋ก์ด maven ํ์ผ์ ๋ค์ด๋ก๋ํ๋ ๊ฒ์ ๋ณด์์ ๋ ์ด๋ฏธ ๋์ ํ๋ฆฌ๊ณ ์์๊ณ ๋ด ์์๋๋ก ๋ชจ๋ ๊ฒ์ด ๋ถ์ ์ผ์ผ์ผฐ์ต๋๋ค!
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ด๋ค ํด๊ฒฐ์ฑ ์ ์ฃผ์ธ์
์ด ์๊ฒฌ์์ ๊ฐ์ ธ์จ ์๋ฃจ์ https://github.com/arnesson/cordova-plugin-firebase/issues/1081#issuecomment -503041641
build-extras.gradle
๋ฅผ ๋ฃ์ผ์ญ์์ค.def dependencyMap = [
"com.google.firebase:firebase-core": "16.0.8",
"com.google.firebase:firebase-iid": "17.1.1",
"com.google.firebase:firebase-messaging": "17.5.0",
"com.google.firebase:firebase-config": "16.4.0",
"com.google.firebase:firebase-perf": "16.2.4",
"com.google.android.gms:play-services-tagmanager": "16.0.8",
"com.google.firebase:firebase-auth": "16.2.0"
]
allprojects {
repositories {
google()
jcenter()
mavenLocal()
}
configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
def group = details.requested.group
def name = details.requested.name
def fullName = group + ":" + name
print fullName
if (dependencyMap.containsKey(fullName)) {
details.useVersion dependencyMap[fullName]
}
}
}
}
}
#!/usr/bin/env node
const fs = require('fs')
fs.copyFileSync("./build-extras.gradle", "./platforms/android/build-extras.gradle");
<platform name="android">
<hook src="scripts/copy_build_extra.js" type="after_prepare" />
</platform>
cordova platform rm android
cordova platform add android
๋๋ฅผ ์ํด ์ผํ๊ณ ํฌ๋ง๋ ๋น์ ์ ์ํด ํ ๊ฒ์ ๋๋ค
์ด๊ฒ์ ์ํํ "ํดํน"์ด ์ ์ ์ต๊ณ ์ ์๋ฃจ์ ์ ๋๋ค. https://github.com/arnesson/cordova-plugin-firebase/issues/1081#issuecomment -503135862(cordova-android@8 ํ์)
@igorkurochka ๊ฐ์ฌํฉ๋๋ค. ๋ค์ ์๋ํฉ๋๋ค.
์ถ์ : ์ ๋ cordova 6.5 ๋ฐ Android 7.1.4๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก dann์ด ๋งํ ๊ฒ์ฒ๋ผ Android 8๋ก ์ ๋ฐ์ดํธํ ํ์๊ฐ ์์ต๋๋ค.
@SandroMoretti ์ ๋ฐ์ดํธํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ ๊ฐ์์. ํ์ธ์. 4์์ ํ๋ฌ๊ทธ์ธ ํฌํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด ํ๋ฌ๊ทธ์ธ์ด ๋ ๋ง์ ๊ณจ์นซ๊ฑฐ๋ฆฌ๋ฅผ ์์ฑํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ๋ cordova-android@7 ์ ์ฌ์ฉ ํ๊ณ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ํ๋ฌ๊ทธ์ธ์ ์ข ์์ฑ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ ์ด์ API < 28์ ์ง์ํ์ง ์์ผ๋ฏ๋ก API 28์ ์ฌ์ฉํ๋ cordova-android@8 ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค...
@dann95 ์๊ฒ ์ต๋๋ค . ์ ๋ฐ์ดํธ๋ฅผ ์๋ํ์ต๋๋ค. ์ด์ ๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ฝ๋ฅด๋๋ฐ๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
Npm์ ์ฌ๊ธฐ์ ์ฝ๋ฅด๋๋ฐ 6.5๋ฅผ ์ค์นํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์๋ง๋ ์ ๊ตฌ์ ์์คํ
(์ฐ๋ถํฌ 14)์ผ ๊ฒ์
๋๋ค.
์ธ์ ๊ฐ๋ OS๋ฅผ ์
๊ทธ๋ ์ด๋ํ๊ธฐ ์ํด ํ๋ฃจ๋ฅผ ์์ฝํ ๋ค์ ์ฝ๋ฅด๋๋ฐ์ ์๋๋ก์ด๋ ํ๋ซํผ์ ์
๋ฐ์ดํธํ ๊ฒ์
๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
Cordova cli๊ฐ ์ ์ญ์ ์ผ๋ก ์ค์น๋์ด ์์ผ๋ฉด ์ ์ญ์ ์ผ๋ก ์ ๊ฑฐํด์ผ ํฉ๋๋ค. "-g" xD
@SandroMoretti ์ ๋ฐ์ดํธํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ ๊ฐ์์. ํ์ธ์. 4์์ ํ๋ฌ๊ทธ์ธ ํฌํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด ํ๋ฌ๊ทธ์ธ์ด ๋ ๋ง์ ๊ณจ์นซ๊ฑฐ๋ฆฌ๋ฅผ ์์ฑํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ๋ cordova-android@7 ์ ์ฌ์ฉ ํ๊ณ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ํ๋ฌ๊ทธ์ธ์ ์ข ์์ฑ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ ์ด์ API < 28์ ์ง์ํ์ง ์์ผ๋ฏ๋ก API 28์ ์ฌ์ฉํ๋ cordova-android@8 ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค...
cordova-plugin-firebase ๋๋ ํ ๋ฆฌ๊ฐ ์ด์ ์๋ 93,9MB์์ผ๋ ์ง๊ธ์ 1,30MB์
๋๋ค.
cordova-plugin-cocoapod-support ์ด์ ์๋ ์ค์น๋์ง ์์์ง๋ง ์ง๊ธ์ ์ค์น๋์ด ์์ต๋๋ค.
๋น์ ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๊น?
@pegasx
cocoapod-support๊ฐ ์ค์น๋์ง ์์์ต๋๋ค.
@pegasx
cocoapod-support๊ฐ ์ค์น๋์ง ์์์ต๋๋ค.
์ฃ์กํฉ๋๋ค. dpa99c์ ์๋ฃจ์ ์ ์ค์นํ์ง ์์์ต๋๋ค. ๊ทธ๋์ ์ง๋ฌธ์ @dann95์ ๋๋ค.
cordova-plugin-firebase ๋๋ ํ ๋ฆฌ๊ฐ ์ด์ ์๋ 93,9MB์์ผ๋ ์ง๊ธ์ 1,30MB์
๋๋ค.
cordova-plugin-cocoapod-support ์ด์ ์๋ ์ค์น๋์ง ์์์ง๋ง ์ง๊ธ์ ์ค์น๋์ด ์์ต๋๋ค.
๋น์ ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๊น?
cocoapod๋ "swift"์ฉ์ด์ด์ผ ํฉ๋๋ค. ๋ด Linux์๋ ์ค์น๋์ด ์์ต๋๋ค. ์ด์ ๋ฅผ ์กฐ์ฌํ ๊ฒ์ ๋๋ค.
ํฌ๊ธฐ์ ๋ํด, ์ด์ ์ ํฌ๊ธฐ๊ฐ ์ด๋ ๋์ง ํ์ธํ์ง๋ง ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด ์๋ฃจ์ ์ ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ง๋ง ๋งํฌ์ ๋จ๊ณ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด ์ ์ฅ์์์ ๋ ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ๋ชจ๋ ํ์ผ์ ์ ํ๋ก์ ํธ์ ๋ณต์ฌํด์ผ ํ์ต๋๋ค.
@igorkurochka , ๋ค์ ์ผํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
@igorkurochka
์์ ํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ๋ด ์ชฝ์์๋ ์๋ํฉ๋๋ค. ๋ด ์ดํด๋ ์๋ ๋ชฉ๋ก์ด firbase ํ๋ฌ๊ทธ์ธ์ ์ข
์์ฑ์ด๋ผ๋ ๊ฒ์
๋๋ค. ์ด๊ฒ๋ค์ ํ๋ฌ๊ทธ์ธ ์์ฒด์ ์ํด ์ ์๋์ด์ผ ํ์ง ์์ต๋๊น? ์ธ๋ถ ์ฝ๋ฅด๋๋ฐ ํํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ Android ํ๋ก์ ํธ์ ์ถ๊ฐํ๋ ๊ฒ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์๋ฃจ์
์ ์๋๋๋ค. ๋ง์คํฐ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ ์๋ ์ข
์์ฑ์ ์ ํํ ๋ฒ์ ์ ๊ฐ์ ธ์ค๊ธฐ ์ํด ํ ์์ฒญ์ ์์ฑํ ๊ธฐํ๊ฐ ์์ต๋๊น? ๊ฐ์ฌ ํด์.
```
def ์์กด์ฑ ๋งต = [
"com.google. firebase:firebase -core ": "16.0.8",
"com.google. firebase:firebase-iid ": "17.1.1",
"com.google. firebase:firebase -messaging ": "17.5.0",
"com.google. firebase:firebase -config ": "16.4.0",
"com.google. firebase:firebase-perf ": "16.2.4",
"com.google.android.gms :play-services-tagmanager ": "16.0.8",
"com.google. firebase:firebase -auth ": "16.2.0"
]
@์ฐ๋๋ก๋ชจ๋ ํฐ
@igorkurochka ๊ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ ์ฌ์ค์ด์ง๋ง ์ด๊ฒ์ ํด๊ฒฐ์ฑ
์ด ์๋๋ผ ํด๊ฒฐ ๋ฐฉ๋ฒ์
์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ฌ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด ๋๊ธ์์ ๊ฐ์ ธ์จ ์๋ฃจ์ #1081(๋๊ธ)
- ํ๋ก์ ํธ ๋ฃจํธ์
build-extras.gradle
๋ฅผ ๋ฃ์ผ์ญ์์ค.def dependencyMap = [ "com.google.firebase:firebase-core": "16.0.8", "com.google.firebase:firebase-iid": "17.1.1", "com.google.firebase:firebase-messaging": "17.5.0", "com.google.firebase:firebase-config": "16.4.0", "com.google.firebase:firebase-perf": "16.2.4", "com.google.android.gms:play-services-tagmanager": "16.0.8", "com.google.firebase:firebase-auth": "16.2.0" ] allprojects { repositories { google() jcenter() mavenLocal() } configurations.all { resolutionStrategy { eachDependency { DependencyResolveDetails details -> def group = details.requested.group def name = details.requested.name def fullName = group + ":" + name print fullName if (dependencyMap.containsKey(fullName)) { details.useVersion dependencyMap[fullName] } } } } }
- ์ด ํํฌ ์ฝ๋๋ฅผ scripts/copy_build_extra.js์ ๋ฃ์ผ์ญ์์ค.
#!/usr/bin/env node const fs = require('fs') fs.copyFileSync("./build-extras.gradle", "./platforms/android/build-extras.gradle");
- Android ํ๋ซํผ ๋ด๋ถ์ config.xml์์ ํํฌ ๊ตฌ์ฑ
<platform name="android"> <hook src="scripts/copy_build_extra.js" type="after_prepare" /> </platform>
- ํํฌ๋ฅผ ํ์ฑํํ๊ธฐ ์ํด ํ๋ซํผ์ ๋ค์ ์ค์นํ์ญ์์ค.
cordova platform rm android cordova platform add android
๋๋ฅผ ์ํด ์ผํ๊ณ ํฌ๋ง๋ ๋น์ ์ ์ํด ํ ๊ฒ์ ๋๋ค
์๋
ํ์ธ์ @igorkurochka , ์ ๋ ์ฌ์ ํ ์ด๋ฌํ ์ ํ์ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์์ต๋๋ค. ๊ทธ ๋ฌธ์ ์ ๋ํด ์ ๋ฅผ ๋์์ฃผ์๊ฒ ์ต๋๊น?
ํ๋ซํผ/์๋๋ก์ด๋/์ฑ/src/main/java/org/apache/cordova/firebase/FirebasePlugin. java:9 : ์ค๋ฅ: ๊ธฐํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
import android.support.v4.app.NotificationManagerCompat;
@pankajPizone gradle ์บ์๋ฅผ ์ญ์ ํ์ต๋๊น?
rm -rf ~/.gradle/
@dann95 ์๋๋ก์ด๋ ํด๋?
"~"๋ ์ง์ ์๋ฏธํ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ด ์ง์์ง๋๋ค.
/home/myusername/.gradle/
์ข์ @ dann95 ์๋ ์ค
@dann95 ์ฌ์ ํ ๋๊ฐ๋ค
๊ด์ฐฎ์.
๋ค์ ์ฝ๋๋ค.
@uifox ๊ฐ์ฌํฉ๋๋ค
Dan, ๋ด cordova cli์ ๋ํด ์ ์ธ๊ณ์ ์ผ๋ก ์ ๊ฑฐ๋์์ผ๋ฉฐ ์ ์ธ๊ณ์ ์ผ๋ก ๋ค์ ์ค์น๋์์ต๋๋ค.
๋ด๊ฐ ๋งํ๋ฏ์ด ์ฌ์ค์น ํ 6.5๋ฅผ ์ ์งํ์ญ์์ค.
๊ฐ์ฌ ํด์.
@SandroMoretti ํด๊ฒฐ์ฑ
์ ์ฐพ์์ต๋๊น?
๋๋์ด ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์๋ค
Firebase/FirebasePluginMessagingService. java:11 : ์ค๋ฅ: ๊ธฐํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
import android.support.v4.app.NotificationCompat;
@SandroMoretti๊ฐ ๋ ธ๋ ๋ฒ์ ์ ์ ๊ทธ๋ ์ด๋ํ ์ ์์ต๋๊น? ๋ ธ๋ ๋ฒ์ ๊ฐ์ ์ฝ๊ฒ ์ ํํ ์ ์๋๋ก nvm์ ์ฌ์ฉํด ๋ณด์ญ์์ค.
@pankajPizone ๋ชจ๋ ํ๋ฌ๊ทธ์ธ๊ณผ ํจ๊ป config.xml์ ํ์ํ ์ ์์ต๋๊น?
@ dann95 ๋ config.xml์ ํ๋ฌ๊ทธ์ธ์ ๋๋ค.
<plugin name="cordova-plugin-statusbar" spec="^2.4.2" />
<plugin name="cordova-plugin-splashscreen" spec="^5.0.2" />
<plugin name="cordova-plugin-ionic-webview" spec="^2.4.0">
<variable name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" value="27.+" />
</plugin>
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.1.3" />
<plugin name="cordova-plugin-firebase" spec="^2.0.5" />
<plugin name="cordova-plugin-facebook4" spec="^4.2.1">
<variable name="APP_ID" value="xxxxxx" />
<variable name="APP_NAME" value="x x" />
<variable name="FACEBOOK_ANDROID_SDK_VERSION" value="4.38.1" />
<variable name="FACEBOOK_HYBRID_APP_EVENTS" value="false" />
</plugin>
<plugin name="cordova-plugin-nativegeocoder" spec="^3.2.0" />
<plugin name="cordova-plugin-geolocation" spec="^4.0.1">
<variable name="GEOLOCATION_USAGE_DESCRIPTION" value="To locate you" />
</plugin>
<plugin name="cordova-plugin-appavailability" spec="^0.4.2" />
<plugin name="cordova-plugin-media" spec="^5.0.2" />
<plugin name="cordova-plugin-music-controls" spec="^2.2.0" />
<plugin name="cordova-plugin-contacts" spec="^3.0.1" />
<plugin name="cordova-plugin-applemusic" spec="^1.3.3" />
<plugin name="cordova-plugin-apple-music" spec="^0.2.5" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.3" />
<plugin name="com.telerik.plugins.nativepagetransitions" spec="^0.6.5" />
<plugin name="cordova-plugin-applemusic" spec="^1.3.3" />
<plugin name="cordova-plugin-apple-music" spec="^0.2.5" />
<plugin name="cordova-plugin-add-swift-support" spec="1.7.2" />
<allow-navigation href="http://192.168.1.120:8100" sessionid="8e9a7c7b" />
<plugin name="com.telerik.plugins.nativepagetransitions" spec="0.6.5" />
<plugin name="cordova-plugin-googleplus" spec="7.0.0">
<variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.xxxxxxx" />
<variable name="WEB_APPLICATION_CLIENT_ID" value="xxxxx-xxxxxxx.apps.googleusercontent.com" />
<variable name="PLAY_SERVICES_VERSION" value="11.8.0" />
</plugin>
<plugin name="cordova-plugin-device" spec="../../cordova-plugin-device" />
<plugin name="uk.co.workingedge.phonegap.plugin.launchnavigator" spec="5.0.4">
<variable name="GOOGLE_API_KEY_FOR_ANDROID" value="xxxxx" />
<variable name="OKHTTP_VERSION" value="3.12.0" />
</plugin>
<plugin name="cordova-plugin-customurlscheme" spec="4.3.0">
<variable name="URL_SCHEME" value="spotifyapp" />
<variable name="ANDROID_SCHEME" value=" " />
<variable name="ANDROID_HOST" value=" " />
<variable name="ANDROID_PATHPREFIX" value="/" />
</plugin>
<plugin name="cordova-spotify-oauth" spec="0.1.11" />
<plugin name="cordova-spotify" spec="0.5.8" />
<plugin name="cordova-plugin-geofence" spec="0.7.0" />
<engine name="ios" spec="4.5.5" />
<engine name="android" spec="8.0.0" />
@dann95 ๋ฌธ์ ๋ฅผ ์ฐพ๋ ๋ฐ ๋์์ด ๋๋์?
@pankajPizone ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํ๋ซํผ์ ์ ๊ฑฐํ๋ค๊ฐ ๋ค์ ์ถ๊ฐํ๋ ค๊ณ ํ์ต๋๊น?
@ dann95 ์ฌ๋ฌ ๋ฒ ์๋ํ์ต๋๋ค.
๋ ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
ionic cordova plugin add cordova-plugin-androidx
ionic cordova plugin add cordova-plugin-androidx-adapter
@pankajPizone ์ด ๋ ํ๋ฌ๊ทธ์ธ๋ ์ฌ์ฉํ์ง๋ง Cordova ๋ฒ์ ์ ์ ๋ฐ์ดํธํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ๋ ์ด์ ๋...
์ด ์ ๋ฐ์ดํธ์ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ฌด์์ด ์๋ชป๋์๋์ง:
์์
': app:compileDebugJavaWithJavac '์ ์ข
์์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
๊ตฌ์ฑ ': app:debugCompileClasspath '์ ๋ํ ๋ชจ๋ ์์ ์ข ์์ฑ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
androidx์ ์ผ์นํ๋ ๋ฒ์ ์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ ๊ฑฐ์:legacy-support-v4 :27.+.
์ผ์นํ์ง ์๋ ๋ฒ์ :
- 1.0.0
- 1.0.0-rc02
- 1.0.0-rc01
- 1.0.0-๋ฒ ํ01
- 1.0.0-์ํ3
- 1๊ฐ ๋
์๊ตฌ:
ํ๋ก์ ํธ : ์ฑ
๋
ธ๋ ฅํ๋ค:
--stacktrace ์ต์
๊ณผ ํจ๊ป ์คํํ์ฌ ์คํ ์ถ์ ์ ๊ฐ์ ธ์ต๋๋ค. ๋ ๋ง์ ๋ก๊ทธ ์ถ๋ ฅ์ ์ป์ผ๋ ค๋ฉด --info ๋๋ --debug ์ต์
๊ณผ ํจ๊ป ์คํํ์ญ์์ค. --scan์ผ๋ก ์คํํ์ฌ ์ ์ฒด ํต์ฐฐ๋ ฅ์ ์ป์ผ์ญ์์ค.
https://help.gradle.org ์์ ๋ ๋ง์ ๋์์ ๋ฐ์ผ์ธ์.
58์ด์ ๊ตฌ์ถ ์คํจ
C:UsersAdminDesktopOMNICARomnicarplatformsandroidgradlew: ์ข
๋ฃ ์ฝ๋ 1 ์ค๋ฅ ์ถ๋ ฅ์ผ๋ก ๋ช
๋ น ์คํจ:
FAILURE: ์์ธ๋ก ์ธํด ๋น๋์ ์คํจํ์ต๋๋ค.
build.gradle์ ํ๋ซํผ ์ข ์์ฑ์ ์ถ๊ฐํ๋ฉด ๋ง๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง "cordova compile"์ ์คํํ๋ฉด ์ข ์์ฑ์ด ๋ค์ ์๋ชป๋ ๊ฒ์ผ๋ก ๋ฐ๋๋๋ค.
์ฝ๋ฅด๋๋ฐ ํ๋ฌ๊ทธ์ธ ls
์ฝ๋ฅด๋๋ฐ ํจ๋ธ๋ฆญ ํ๋ฌ๊ทธ์ธ 1.1.14-dev "์ฝ๋ฅด๋๋ฐ ํจ๋ธ๋ฆญ ํ๋ฌ๊ทธ์ธ"
cordova-plugin-android-permissions 1.0.0 "๊ถํ"
์ฝ๋ฅด๋๋ฐ-ํ๋ฌ๊ทธ์ธ-์๋๋ก์ด๋x 1.0.2 "์ฝ๋ฅด๋๋ฐ-ํ๋ฌ๊ทธ์ธ-์๋๋ก์ด๋x"
์ฝ๋ฅด๋๋ฐ-ํ๋ฌ๊ทธ์ธ-์๋๋ก์ด๋x-์ด๋ํฐ 1.0.2 "์ฝ๋ฅด๋๋ฐ-ํ๋ฌ๊ทธ์ธ-์๋๋ก์ด๋x-์ด๋ํฐ"
cordova-plugin-camera 4.0.3 "์นด๋ฉ๋ผ"
cordova-plugin-cocoapod-supportx 1.6.1 "Cordova CocoaPods ์ข ์์ฑ ์ง์"
cordova-plugin-crop 0.3.1 "CropPlugin"
cordova-plugin-device 1.1.7 "์ฅ์น"
์ฝ๋ฅด๋๋ฐ ํ๋ฌ๊ทธ์ธ ํ์ผ 6.0.1 "ํ์ผ"
cordova-plugin-filechooser 1.2.0 "ํ์ผ ์ ํ๊ธฐ"
์ฝ๋ฅด๋๋ฐ-ํ๋ฌ๊ทธ์ธ-ํ์ผ๊ฒฝ๋ก 1.5.5 "์ฝ๋ฅด๋๋ฐ-ํ๋ฌ๊ทธ์ธ-ํ์ผ๊ฒฝ๋ก"
cordova-plugin-firebasex 2.0.6 "Google Firebase ํ๋ฌ๊ทธ์ธ"
cordova-plugin-geolocation 4.0.1 "์ง๋ฆฌ์ ์์น"
cordova-plugin-googlemaps 2.6.3-20190614-1928 "cordova-plugin-googlemaps"
์ฝ๋ฅด๋๋ฐ-ํ๋ฌ๊ทธ์ธ-์ด์จ-ํค๋ณด๋ 2.1.3 "์ฝ๋ฅด๋๋ฐ-ํ๋ฌ๊ทธ์ธ-์ด์จ-ํค๋ณด๋"
cordova-plugin-ionic-webview 2.5.0 "cordova-plugin-ionic-webview"
cordova-plugin-screen-orientation 3.0.1 "ํ๋ฉด ๋ฐฉํฅ"
cordova-plugin-splashscreen 5.0.2 "์คํ๋์ ํ๋ฉด"
์ฝ๋ฅด๋๋ฐ ํ๋ฌ๊ทธ์ธ ์ํ ํ์์ค 2.4.2 "์ํ ํ์์ค"
cordova-plugin-whitelist 1.3.3 "ํ์ดํธ๋ฆฌ์คํธ"
cordova-sqlite-storage 3.2.0 "Cordova sqlite ์คํ ๋ฆฌ์ง ํ๋ฌ๊ทธ์ธ - cordova-sqlite-storage ํ๋ฌ๊ทธ์ธ ๋ฒ์ "
es6-promise-plugin 4.2.2 "์ฝ์"
info.protonet.imageresizer 0.1.1 "์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ ๊ธฐ"
onesignal-cordova-plugin 2.4.7 "OneSignal ํธ์ ์๋ฆผ"
error: cannot find symbol class NotificationManagerCompat
์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด PR์ ๋ณด๊ณ ์ถ์ต๋๋ค. ๋๋ ํ์ฌ wizpanda ํฌํฌ์์ ๋ถ๋ฆฌ๋์์ต๋๋ค.
๋ ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
ionic cordova plugin add cordova-plugin-androidx ionic cordova plugin add cordova-plugin-androidx-adapter
๊ด์ฐ์ ์ด ์๋ฃจ์
์ผ๋ก๋ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ์ถ๋์์ง๋ง ๋ด ์ฑ์ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋๋ ์ผ์ข
์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ ์ก์ธ์คํ ์ ์๋ ๊ฒฝ์ฐ์ ๊ฐ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๊ฐํ์ต๋๋ค. ์ค์ ๋ก adb logcat์ ๋ค์์ ๋์ง๋๋ค.
AndroidProtocolHandler: Unable to open asset URL: file:///android_asset/www/cordova_plugins.js
ํ์ง๋ง ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์์ฑํ๋ค๊ณ ํ์ ํฉ๋๋ค. ์์ ํ ์์๋ค.
@AurumLinux ์ด ์ฃผ์ ์ ๋ช
๋ น์ผ๋ก ์์ํ์ฌ ๋จ๊ณ๋ณ๋ก ์ฑ์ ๋ค์ ๋น๋ํด์ผ ํฉ๋๋ค.
๊ธฐ์กด์ ๊ธฐ์กด ํ๋ก์ ํธ ์์ ํ๋ฌ๊ทธ์ธ์ ๋จ์ํ ์ค์นํ๋ ค๊ณ ํ ๋๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋ฌธ์ ๋ ๋ด๊ฐ cordova-plugin-admobpro ๋์ cordova-plugin-admobpro-firebase ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด์ ์ ์ ์๋ํฉ๋๋ค.
cordova-plugin-firebase -> src -> android -> build.gradle ๋ณ๊ฒฝ ์ค 20๋ฒ com.google. firebase:firebase-auth :+ com.google. firebase:firebase-auth :16.2.1
๊ทธ๊ฒ์ ์ ์๋ํฉ๋๋ค :
ionic cordova ํ๋ฌ๊ทธ์ธ์ cordova-plugin-androidx๋ฅผ ์ถ๊ฐํฉ๋๋ค.
ionic cordova ํ๋ฌ๊ทธ์ธ์ cordova-plugin-androidx-adapter๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๊ทธ๊ฒ์ ์ ์๋ํฉ๋๋ค :
ionic cordova ํ๋ฌ๊ทธ์ธ์ cordova-plugin-androidx๋ฅผ ์ถ๊ฐํฉ๋๋ค.
ionic cordova ํ๋ฌ๊ทธ์ธ์ cordova-plugin-androidx-adapter๋ฅผ ์ถ๊ฐํฉ๋๋ค.
@fvadouko ์ด๋ค ์๋๋ก์ด๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น? 7.1 ๋๋ 8.0? ๋ค๋ฅธ ํธํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ์์ ์ฌํญ์ด ์์ต๋๊น?
@AurumLinux ์ด ์ฃผ์ ์ ๋ช ๋ น์ผ๋ก ์์ํ์ฌ ๋จ๊ณ๋ณ๋ก ์ฑ์ ๋ค์ ๋น๋ํด์ผ ํฉ๋๋ค.
๊ธฐ์กด์ ๊ธฐ์กด ํ๋ก์ ํธ ์์ ํ๋ฌ๊ทธ์ธ์ ๋จ์ํ ์ค์นํ๋ ค๊ณ ํ ๋๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋๋ ๋ฉฐ์น ๋์์ด ๋ฒ๊ทธ๋ก ๊ณ ์ํ์ต๋๋ค. ์ฐ๊ฒฐ๋ ์ฃผ์์์ ํฌํฌ๋ก ์ ํํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์๋ํ์ต๋๋ค.
์ด ๋๊ธ์์ ๊ฐ์ ธ์จ ์๋ฃจ์ #1081(๋๊ธ)
- ํ๋ก์ ํธ ๋ฃจํธ์
build-extras.gradle
๋ฅผ ๋ฃ์ผ์ญ์์ค.def dependencyMap = [ "com.google.firebase:firebase-core": "16.0.8", "com.google.firebase:firebase-iid": "17.1.1", "com.google.firebase:firebase-messaging": "17.5.0", "com.google.firebase:firebase-config": "16.4.0", "com.google.firebase:firebase-perf": "16.2.4", "com.google.android.gms:play-services-tagmanager": "16.0.8", "com.google.firebase:firebase-auth": "16.2.0" ] allprojects { repositories { google() jcenter() mavenLocal() } configurations.all { resolutionStrategy { eachDependency { DependencyResolveDetails details -> def group = details.requested.group def name = details.requested.name def fullName = group + ":" + name print fullName if (dependencyMap.containsKey(fullName)) { details.useVersion dependencyMap[fullName] } } } } }
- ์ด ํํฌ ์ฝ๋๋ฅผ scripts/copy_build_extra.js์ ๋ฃ์ผ์ญ์์ค.
#!/usr/bin/env node const fs = require('fs') fs.copyFileSync("./build-extras.gradle", "./platforms/android/build-extras.gradle");
- Android ํ๋ซํผ ๋ด๋ถ์ config.xml์์ ํํฌ ๊ตฌ์ฑ
<platform name="android"> <hook src="scripts/copy_build_extra.js" type="after_prepare" /> </platform>
- ํํฌ๋ฅผ ํ์ฑํํ๊ธฐ ์ํด ํ๋ซํผ์ ๋ค์ ์ค์นํ์ญ์์ค.
cordova platform rm android cordova platform add android
๋๋ฅผ ์ํด ์ผํ๊ณ ํฌ๋ง๋ ๋น์ ์ ์ํด ํ ๊ฒ์ ๋๋ค
ํ ๐๐ฝ
๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ์ฌ ๋์์ด ํ์ํฉ๋๋ค
https://github.com/arnesson/cordova-plugin-firebase/issues/1089
@igorkurochka ๊ฐ์ฌํฉ๋๋ค. ์๋ํฉ๋๋ค. ๋๋ ์ด๊ฒ์ผ๋ก ๊ณ ์ํ๋ค.
๋๋ ๋ฌธ์ ๊ฐ์๋ค
FirebasePlugin.java:365: error: cannot find symbol
@igorkurochka์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๊ทธ๊ฒ์ ๋ด ํ๋ก์ ํธ์ ํจ๊ป ์ผํ์ต๋๋ค.
@igorkurochka ์ฌ๊ธฐ์์๋ ์๋ํ์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค
์ด ๋๊ธ์์ ๊ฐ์ ธ์จ ์๋ฃจ์ #1081(๋๊ธ)
1. put `build-extras.gradle` in your project root
def dependencyMap = [ "com.google.firebase:firebase-core": "16.0.8", "com.google.firebase:firebase-iid": "17.1.1", "com.google.firebase:firebase-messaging": "17.5.0", "com.google.firebase:firebase-config": "16.4.0", "com.google.firebase:firebase-perf": "16.2.4", "com.google.android.gms:play-services-tagmanager": "16.0.8", "com.google.firebase:firebase-auth": "16.2.0" ] allprojects { repositories { google() jcenter() mavenLocal() } configurations.all { resolutionStrategy { eachDependency { DependencyResolveDetails details -> def group = details.requested.group def name = details.requested.name def fullName = group + ":" + name print fullName if (dependencyMap.containsKey(fullName)) { details.useVersion dependencyMap[fullName] } } } } }
1. put this hook code in your scripts/copy_build_extra.js
#!/usr/bin/env node const fs = require('fs') fs.copyFileSync("./build-extras.gradle", "./platforms/android/build-extras.gradle");
1. configure hook in config.xml inside android platform
<platform name="android"> <hook src="scripts/copy_build_extra.js" type="after_prepare" /> </platform>
1. reinstall platform to activate the hook
cordova platform rm android cordova platform add android
๋๋ฅผ ์ํด ์ผํ๊ณ ํฌ๋ง๋ ๋น์ ์ ์ํด ํ ๊ฒ์ ๋๋ค
๋งค๋ ฅ์ฒ๋ผ ์ผํ์ต๋๋ค :). ํ์์ ์ธ ์๋ฃจ์ .
์ด ๋๊ธ์์ ๊ฐ์ ธ์จ ์๋ฃจ์ #1081(๋๊ธ)
- ํ๋ก์ ํธ ๋ฃจํธ์
build-extras.gradle
๋ฅผ ๋ฃ์ผ์ญ์์ค.def dependencyMap = [ "com.google.firebase:firebase-core": "16.0.8", "com.google.firebase:firebase-iid": "17.1.1", "com.google.firebase:firebase-messaging": "17.5.0", "com.google.firebase:firebase-config": "16.4.0", "com.google.firebase:firebase-perf": "16.2.4", "com.google.android.gms:play-services-tagmanager": "16.0.8", "com.google.firebase:firebase-auth": "16.2.0" ] allprojects { repositories { google() jcenter() mavenLocal() } configurations.all { resolutionStrategy { eachDependency { DependencyResolveDetails details -> def group = details.requested.group def name = details.requested.name def fullName = group + ":" + name print fullName if (dependencyMap.containsKey(fullName)) { details.useVersion dependencyMap[fullName] } } } } }
- ์ด ํํฌ ์ฝ๋๋ฅผ scripts/copy_build_extra.js์ ๋ฃ์ผ์ญ์์ค.
#!/usr/bin/env node const fs = require('fs') fs.copyFileSync("./build-extras.gradle", "./platforms/android/build-extras.gradle");
- Android ํ๋ซํผ ๋ด๋ถ์ config.xml์์ ํํฌ ๊ตฌ์ฑ
<platform name="android"> <hook src="scripts/copy_build_extra.js" type="after_prepare" /> </platform>
- ํํฌ๋ฅผ ํ์ฑํํ๊ธฐ ์ํด ํ๋ซํผ์ ๋ค์ ์ค์นํ์ญ์์ค.
cordova platform rm android cordova platform add android
๋๋ฅผ ์ํด ์ผํ๊ณ ํฌ๋ง๋ ๋น์ ์ ์ํด ํ ๊ฒ์ ๋๋ค
์๋ ํ์ธ์, ์ ์ ์์ ํ ํ Invalid Key: null ๋ฌธ์ ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค์๊ณผ ๊ฐ์ ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋์์ต๋๋ค.
* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
The library com.google.android.gms:play-services-analytics-impl is being requested by various other libraries at [[16.0.8,16.0.8], [17.0.0,17.0.0]], but resolves to 17.0.0. Disable the plugin and check your dependencies tree using ./gradlew :app:dependencies.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด 3๊ฐ์ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(play-services-analytics-impl, play-services-analytics ๋ฐ play-services-tagmanager-v4-impl)๋ฅผ 16.0.8๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ๋ฉด " Crashlytics found ์๋ชป๋ API ํค: null." ๋ค์. ๋ถ๋ช ํ "com.google.android.gms :play-services-tagmanager "๋ฅผ
๋์์ด ๋์ จ๋์?
๋ค์์ ๋ด config.xml์ ์ผ๋ถ์
๋๋ค.
<platform name="android">
<allow-intent href="market:*" />
<hook src="hooks/android_build_extra.js" type="after_prepare" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
<platform name="android">
<preference name="android-minSdkVersion" value="19" />
<preference name="android-installLocation" value="auto" />
<preference name="disallowOverscroll" value="true" />
</platform>
<platform name="ios">
</platform>
<plugin name="cordova-plugin-device" spec="^2.0.2" />
<plugin name="cordova-plugin-globalization" spec="1.11.0" />
<plugin name="cordova-plugin-google-analytics" spec="1.8.6" />
<plugin name="cordova-plugin-inappbrowser" spec="3.0.0" />
<plugin name="cordova-plugin-splashscreen" spec="5.0.3" />
<plugin name="cordova-plugin-statusbar" spec="2.4.3" />
<plugin name="cordova-plugin-whitelist" spec="1.3.4" />
<plugin name="cordova-plugin-network-information" spec="2.0.2" />
<plugin name="com.lampa.startapp" spec="6.1.6" />
<plugin name="cordova-plugin-firebase" spec="2.0.5" />
<plugin name="cordova-android-play-services-gradle-release" spec="^4.0.0">
<variable name="PLAY_SERVICES_VERSION" value="11.0.+" />
</plugin>
<plugin name="cordova-android-firebase-gradle-release" spec="^4.0.0">
<variable name="FIREBASE_VERSION" value="11.0.+" />
</plugin>
<plugin name="cordova-android-support-gradle-release" spec="3.0.1">
<variable name="ANDROID_SUPPORT_VERSION" value="26.+" />
</plugin>
๋์์ด ๋์ จ๋์?
๊ฐ์ฌ ํด์,
์ธ๋ฅด์ง
๋ ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
ionic cordova plugin add cordova-plugin-androidx ionic cordova plugin add cordova-plugin-androidx-adapter
๊ณ ๋ง์์!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ์๊ฒฌ์์ ๊ฐ์ ธ์จ ์๋ฃจ์ https://github.com/arnesson/cordova-plugin-firebase/issues/1081#issuecomment -503041641
build-extras.gradle
๋ฅผ ๋ฃ์ผ์ญ์์ค.๋๋ฅผ ์ํด ์ผํ๊ณ ํฌ๋ง๋ ๋น์ ์ ์ํด ํ ๊ฒ์ ๋๋ค