컴파일을 완료하지 못했습니다.이미 존재하는 프로그램 유형: com.google.android.gms.internal.measurement.zabn
프로젝트를 컴파일할 때 다음 오류 메시지가 나타납니다.
Program type already present: com.google.android.gms.internal.measurement.zzabn Message{kind=ERROR, text=Program type already present: com.google.android.gms.internal.measurement.zzabn, sources=[Unknown source file], tool name=Optional.of(D8)}
또는
D8: Program type already present: com.google.android.gms.internal.measurement.zzabo
그래들 로그에 다음 스택 트레이스 포함
at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212)\\nat 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.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
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:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
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.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
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:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
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:123)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:745) Caused by: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\0.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\4.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\6.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\7.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\8.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\9.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\10.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\12.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\13.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\14.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\17.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\18.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\19.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\20.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\21.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\22.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\23.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\24.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\25.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\26.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\27.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\28.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\29.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\30.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\31.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\32.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\34.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\39.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\40.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\44.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\45.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\46.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\47.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\48.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\49.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\51.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\52.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\53.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\55.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\56.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\57.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\58.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\59.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\83.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\84.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\85.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\86.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\87.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\88.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\89.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\90.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\91.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\92.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\93.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\94.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\95.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\96.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\97.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\100.jar, D:\Android\appName\app\build\intermediates\transforms\dexBuilder\debug\101.jar
at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:124)
at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:109)
at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:101)
at com.android.build.gradle.internal.transforms.ExternalLibsMergerTransform.transform(ExternalLibsMergerTransform.kt:123)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:221)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:217)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102) ... 48 more Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:76)
at com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(ExceptionUtils.java:45)
at com.android.tools.r8.D8.run(D8.java:67)
at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:107) ... 53 more Caused by: com.android.tools.r8.utils.AbortException
at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:77)
at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:58)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:67) ... 56 more
Firebase는 SDK를 업데이트했습니다.
Firebase Android SDK는 이제 독립적인 버전 번호를 가지고 있어 보다 빈번하고 유연한 업데이트를 할 수 있습니다.
최신 버전을 사용하도록 모든 Firebase 종속성을 업데이트합니다.
Firebase Core com.google.firebase:firebase-core:15.0.2
Ads com.google.firebase:firebase-ads:15.0.0
Analytics com.google.firebase:firebase-analytics:15.0.2
App Indexing com.google.firebase:firebase-appindexing:15.0.0
Authentication com.google.firebase:firebase-auth:15.1.0
Cloud Firestore com.google.firebase:firebase-firestore:16.0.0
Cloud Functions com.google.firebase:firebase-functions:15.0.0
Cloud Messaging com.google.firebase:firebase-messaging:15.0.2
Cloud Storage com.google.firebase:firebase-storage:15.0.2
Crash Reporting com.google.firebase:firebase-crash:15.0.2
Crashlytics com.crashlytics.sdk.android:crashlytics:2.9.1
Invites com.google.firebase:firebase-invites:15.0.1
Performance Monitoring com.google.firebase:firebase-perf:15.1.0
Realtime Database com.google.firebase:firebase-database:15.0.0
Remote Config com.google.firebase:firebase-config:15.0.2
자세한 내용은 이쪽:
https://firebase.google.com/support/release-notes/android
업데이트도 부탁드립니다.google-services
플러그인:
classpath 'com.google.gms:google-services:3.3.1'
여기를 클릭하면 최신 구글 서비스를 찾을 수 있습니다.
또한 이 링크를 체크하여 변경 내용을 이해하고 문서에 기재되어 있는 절차를 따르십시오.
편집일 : 2019년 11월 27일
현시점에서는, 의 최신 버전은google-services
플러그인은4.3.3
그러니까, 당신의 의존성은
classpath 'com.google.gms:google-services:4.3.3'
제 경우에도 문제는 마찬가지입니다.이하의 순서에 따릅니다.
1. build.gradle(gradle)
변경:
classpath 'com.google.gms:google-services:3.2.0'
수신인:
classpath 'com.google.gms:google-services:3.2.1'
2. build.gradle(표준)
implementation 'com.google.firebase:firebase-core:15.0.2'
implementation 'com.google.firebase:firebase-messaging:15.0.2'
implementation 'com.google.android.gms:play-services-maps:15.0.1'
Google 위치 및 장소의 경우:
implementation 'com.google.android.gms:play-services-location:15.0.1'
implementation 'com.google.android.gms:play-services-places:15.0.1'
이 문제는 Firebase가 라이브러리의 버전 관리를 개별적으로 시작했기 때문에 발생합니다.모든 것을 최신 버전으로 업데이트하면 문제가 해결됩니다.
Google Play Gradle 플러그인 버전을 현재 최신 버전으로 업데이트합니다.
프로젝트 수준 내 build.gradle
파일:
classpath 'com.google.gms:google-services:4.0.1'
Google Gradle 플러그인의 최신 버전에 대한 정보는 다음 사이트에서 확인할 수 있습니다.
https://bintray.com/android/android-tools/com.google.gms.google-services/
또한 앱 레벨에서 최신 버전의 개별 라이브러리 사용 build.gradle
파일:
implementation 'com.google.android.gms:play-services-vision:15.0.2'
implementation 'com.google.android.gms:play-services-ads:15.0.1'
implementation 'com.google.firebase:firebase-messaging:15.0.2'
각 라이브러리의 최신 버전에 대한 정보는 다음 사이트에서 확인할 수 있습니다.
https://firebase.google.com/support/release-notes/android 및 https://developers.google.com/android/guides/setup
2018년 11월 8일 현재 Firebase 최신 버전으로 이 문제에 직면한 분들을 위해이 경합은 다운그레이드하여 해결했습니다.firebase-ads
라이브러리와 최신 버전을 사용하여 나머지를 보관합니다.
변경처:
googleImplementation "com.google.firebase:firebase-core:16.0.5"
googleImplementation "com.google.firebase:firebase-ads:17.0.0" //CONFLICTING VERSION
googleImplementation "com.google.firebase:firebase-config:16.1.0"
googleImplementation "com.google.firebase:firebase-messaging:17.3.4"
수신인:
googleImplementation "com.google.firebase:firebase-core:16.0.5"
googleImplementation "com.google.firebase:firebase-ads:15.0.1" //WORKING VERSION
googleImplementation "com.google.firebase:firebase-config:16.1.0"
googleImplementation "com.google.firebase:firebase-messaging:17.3.4"
또한 프로젝트의 루트에는build.gradle
다음 Google 서비스 버전을 사용하고 있습니다.com.google.gms:google-services:4.2.0
.
몇 가지 방법을 시도하여 의존관계 트리를 분석했지만, 언급된 프로그램이 있는 모듈을 제외했습니다. 그러나 실행 시 충돌했습니다.제가 찾은 가장 안전한 해결책은 이 장치를15.0.1
★★★★★★★★★★★★★★★★의 경우firebase-ads
Service Gradle dependency
Firebase Core com.google.firebase:firebase-core:16.0.1
Ads com.google.firebase:firebase-ads:15.0.1
Analytics com.google.firebase:firebase-analytics:16.0.0
App Indexing com.google.firebase:firebase-appindexing:16.0.1
Authentication com.google.firebase:firebase-auth:16.0.2
Cloud Firestore com.google.firebase:firebase-firestore:17.0.2
Cloud Functions com.google.firebase:firebase-functions:16.0.1
Cloud Messaging com.google.firebase:firebase-messaging:17.0.0
Cloud Storage com.google.firebase:firebase-storage:16.0.1
Crash Reporting com.google.firebase:firebase-crash:16.0.0
Crashlytics com.crashlytics.sdk.android:crashlytics:2.9.3
Invites com.google.firebase:firebase-invites:16.0.1
ML Kit: Model Interpreter com.google.firebase:firebase-ml-model-interpreter:16.0.0
ML Kit: Vision com.google.firebase:firebase-ml-vision:16.0.0
ML Kit: Image Labeling com.google.firebase:firebase-ml-vision-image-label-model:15.0.0
Performance Monitoring com.google.firebase:firebase-perf:16.0.0
Realtime Database com.google.firebase:firebase-database:16.0.1
Remote Config com.google.firebase:firebase-config:16.0.0
업데이트 - 2018년 6월 21일
Cloud Firestore 버전 17.0.2
gRPC 요건이 1.8.0에서 1.12.0으로 갱신되었습니다.이를 통해 Wi-Fi와 셀룰러 네트워크 간의 신속한 페일오버가 가능합니다.
버전 16.0.1 초대
파이어베이스 코어 16.0.1과의 비호환성 수정.
후, 하고 있습니다.은 마치, 「」, 「」의 .이것은 마치 에 대한 새로운 업데이트와 같습니다.classpath: 'com.google.gms:google-services:3.1.0'
접속합니다.
classpath: 'com.google.gms:google-services:3.2.0'
제 문제를 해결하는 데 도움이 되었습니다.
또한 Google com.google 버전에 따라 이 게시물에 언급된 다른 답변도 도움이 될 수 있습니다.파이어베이스 패키지를 사용하여 파이어베이스 패키지를 최신 버전으로 업데이트하려고 했습니다.또한 다음 질문을 참조하여 언급된 답변에서 도움을 받을 수 있습니다.
또한 저장소 섹션에 있는 프로젝트 그래들 파일에 다음 항목을 추가했습니다.
maven{
url "https://dl.bintray.com/android/android-tools"
}
빌드 그래들 및 구글 서비스의 클래스 경로를 다음과 같이 업그레이드하십시오.
classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'com.google.gms:google-services:3.3.0'
1. ★★google.gms
최신 버전으로 버전 변경
is회시 at, at니 at at at at이다.4.1.0
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:4.1.0' // google-services plugin
}
}
allprojects {
// ...
repositories {
// ...
google() // Google's Maven repository
}
}
2. Firebase 의존관계를 최신 버전으로 업데이트
종속성을 사용하는 경우 아래의 종속성을 업데이트합니다.파이어베이스에는 현재 모든 의존관계에 대한 개별 버전이 있습니다.
최신 FireBase 라이브러리를 사용합니다.답변 시 최신 버전은 다음과 같습니다.
Firebase Core com.google.firebase:firebase-core:16.0.3
Ads com.google.firebase:firebase-ads:15.0.1
Analytics com.google.firebase:firebase-analytics:16.0.3
App Indexing com.google.firebase:firebase-appindexing:16.0.1
Authentication com.google.firebase:firebase-auth:16.0.3
Cloud Firestore com.google.firebase:firebase-firestore:17.1.0
Cloud Functions com.google.firebase:firebase-functions:16.1.0
Cloud Messaging com.google.firebase:firebase-messaging:17.3.2
Cloud Storage c om.google.firebase:firebase-storage:16.0.2
Crash Reporting com.google.firebase:firebase-crash:16.2.0
Crashlytics com.crashlytics.sdk.android:crashlytics:2.9.5
Dynamic Links com.google.firebase:firebase-dynamic-links:16.1.1
Invites com.google.firebase:firebase-invites:16.0.3
In-App Messaging com.google.firebase:firebase-inappmessaging:17.0.1
In-App Messaging Display com.google.firebase:firebase-inappmessaging-display:17.0.1
ML Kit: Model Interpreter com.google.firebase:firebase-ml-model-interpreter:16.2.0
ML Kit: Vision com.google.firebase:firebase-ml-vision:17.0.0
ML Kit: Image Labeling com.google.firebase:firebase-ml-vision-image-label-model:15.0.0
Performance Monitoring com.google.firebase:firebase-perf:16.1.0
Realtime Database com.google.firebase:firebase-database:16.0.2
Remote Config com.google.firebase:firebase-config:16.0.0
3. 구글 플러그인 잊지 마세요
꼭.apply plugin: 'com.google.gms.google-services'
빌드 그레이들
동기화 및 빌드...
언급URL : https://stackoverflow.com/questions/50149266/compilation-failed-to-completeprogram-type-already-present-com-google-android
'programing' 카테고리의 다른 글
vuex에서 모듈의 네임스페이스란 정확히 무엇입니까? (0) | 2022.07.01 |
---|---|
그래들 프록시 구성 (0) | 2022.07.01 |
매크로가 간접적으로 확장될 때 C의 프리프로세서의 동작을 이해한다. (0) | 2022.07.01 |
VueJ와 jQuery를 멋지게 플레이하다 (0) | 2022.07.01 |
계산 속성 내에서 window.innerWidth를 사용하는 방법 - NuxtJs (0) | 2022.06.30 |