묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨처음 만난 리액트(React)
9장 Conditional Rendering 실습 질문있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[Toolbar.jsx][LandingPage.jsx][index.js][결과창]올려주신 영상과 동일하게 작업을 진행했다고 생각하는데 결과창에서 버튼을 선택해도 상태가 변경되지 않습니다.어떤 부분이 문제일까요??react 버전은 18입니다
-
해결됨GSAP의 ScrollTrigger를 활용한 포트폴리오 제작
영상 오류 확인 요청 드립니다.
섹션 14 5차_업데이트(고정된 섹션에 하위 섹션 올라오는 인터렉티브)ScrollTrigger 실무활용_ScrollTrigger Script적용영상 오류 확인 요청 드립니다.4분 37초 정도 부터 30분 50초 정도 까지 블랙 화면(소리 X)으로 나옵니다.확인 후 회신 부탁 드립니다.
-
해결됨태블로를 향한 첫 걸음
샘플자료는 어디에 있나요?
샘플자료는 어디에 있나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
랜덤포레스트 돌리는 과정에서 질문있습니다
안녕하세요 model.fit과 pred사이의 관계가.. 궁금해져서 질문남깁니다. 처음에 공부할 때는 아무생각 없이 따라쓰면서 'rf.fit에는 x_train, y_train['target'] 변수 두개 넣고 rf.predict에는 x_test 넣어야지' 이렇게만 생각했어요. 근데 이번에 '시험환경에 적응하기'강의에서 문제를 푸는데 궁금한것이 생겼습니다. model.fit(X_train, y_train['gender']) ======1pred = model.predict_proba(X_test)라고 하잖아요? =====2 이게 X_test는 이제 막 선언(2)했고(이전에 X_test에 대해 뭐 한 게 없는거 같다는 의미로요 - 뭐 한게 있으니까 결과가 저렇게 나오는거 같긴한데 말이죠,, ) 이전에 X_test와는 독립적인 X_train, y_train이 fitting(1)된건데.. 어떻게 X_test라는 변수로만 생긴 pred가 결과적으로 '남자인 확률'을 맞히게 되는건지 ..모르겠습니다. 이 관계를 모르니까 '남자인 확률'을 구하려고 할 때 왜 predict에 X_test['gender']가 아니고 X_test를 넣는지도 모르게 되고 말이죠 근데 결과적으로 pred 나오면 gender에 대한 prediction이 나와요(아마 y_test['gender'] 때문인듯 하지만.. )질문이 되게 구구절절인데 요약하자면 model.fit(그리고 그 변수)와 model.prediction(그리고 그 변수)의 관계가 궁금합니다..!! 위 내용은 왜 이게 궁금해지게됐는지에 대한 과정이구요 제가 자체적으로 한 필기에서도 관련 내용을 못 찾겠고 어느 강의에 있을지 찾기 힘들 거 같아 질문으로 올립니다 감사합니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 연관관계와 연관관계의 주인 2 -주의점, 정리 (재질문, 내용 보강)
안녕하십니까 선생님 다름이아니오라 em.flush(), em.clear()를 했을 때와 안했을 때 query를 호출하는 경우와 호출되지 않는 경우에 대해서 이해가 잘 되지 않아 질문드립니다. Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setUsername("member1"); member.setTeam(team); em.persist(member); em.flush(); em.clear(); Team findTeam = em.find(Team.class, team.getId()); List<Member> members = findTeam.getMembers(); for (Member m : members) { System.out.println("m = " + m.getUsername()); } tx.commit(); 위 코드에서em.flush(); em.clear();이 경우에서 em.flush(), em.clear() 를 하지 않으면 컨텍스트에 올라간 객체들은 Team(member 없음), Member 이렇게 존재하게 되는데,em.find(Team) 을 통해서 얻어온 Team에는 Member가 없는 상황이라고 생각합니다.이후 team.getMembers() 를 진행하면 Member 가 없는 상황이기에 쿼리가 발생하면서 DB에서 조회할 것 이라고 생각하나, 쿼리를 실행하지 않고 바로 요소가 비어있는 Persistentbag(Collection 구현체) 를 반환합니다.그렇기 때문에 for ( var m : team.getMembers() ) 을 순회하면 team.getMembers() 가 비어있기 때문에 반복문이 실행되지 않아 표준출력이 발생하지 않습니다.이와 마찬가지로 em.flush(), em.clear() 를 해줬을 때, em.find()를 통해 team을 호출하면 team 객체를 가져오는 쿼리를 실행하게 되는데, 이때도 team 에대한 정보만 조회하기에 Team에는 Member가 없는 상황이라고 생각합니다.이후 team.getMembers() 를 하면 마찬가지로 Persistentbag(Collection 구현체) 을 반환하는데 이 비어있는 Collection 에 대해서 for ( var m : team.getMembers() ) 을 진행하면 member에 대한 query를 진행하여 member정보를 얻어옵니다.정리해보자면 em.flush(), em.clear() 한 경우와 안한 경우 모두 team.getMembers()의 반환값으로 빈 Persistentbag 을 반환하는데, 어떤 기준으로 동작방식이 (쿼리가 실행되고 안되고) 달라지는지 궁금합니다ㅠ추측을 해보자면...em.flush(), em.clear() 한 경우에는Persistentbag<ProxyMember> 이고em.flush(), em.clear() 안한 경우에는Persistentbag<Member> 이고,Persistentbag.iteration() 함수 내부에서<E> 가 ProxyMember 일 경우에 hasNext() == false 면 Query 를 진행해서 db에서 조회 해보고,<E> 가 Member(순수한 객체) 일 경우에는 hasNext() == false 면 그냥 query없이 return 하게되는 걸까요..?
-
미해결나만의 캐릭터를 만들 수 있는 지브러시 (Zbrush) 기초
새로운 Curve brush 생성하고 활용하기
안녕하세요섹션18 새로운 Curve brush 생성하고 활용하기 강의에 내용이 없는데 스스로 학습해보라고 되어있는 것 일까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
시간복잡도 관련 질문드립니다.
질문드립니다. 시간복잡도 O(n) 라고 하셨는데 궁금한점이 있습니다,.for(int i=0; i<n; i++) { System.out.println(n);}이와같이 n개의 데이터를 받아서 처리하는경우라고 알고있는데요 for(char x : b.toCharArray()) { bmap.put(x, bmap.getOrDefault(x, 0) +1); } ====> n int L = b.length()-1; for(int i=0; i<L; i++) { amap.put(a.charAt(i), amap.getOrDefault(a.charAt(i), 0)+1); } =======> n int lt =0; for(int rt = L; rt<a.length(); rt++) { amap.put(a.charAt(rt), amap.getOrDefault(a.charAt(rt), 0)+1); if(amap.equals(bmap)) { answer ++; } amap.put(a.charAt(lt), amap.get(a.charAt(lt))-1); if(amap.get(a.charAt(lt))==0) amap.remove(a.charAt(lt)); lt++; } rt =====> n 이와같이 3개의 변수를 선언한경우도동일하게 O(n)이 되는건가요?보기만 봐서는 O(3n)의 느낌인데시간복잡도 계산방법과 해당 n 판별법이 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
실행이 안되네요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]빌드까지 성공했는데 실행이 안되요
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
개인정보처리방침에 대한 질문
구글스토어에 배포할때 개인정보처리방침을 꼭 작성해야 하는데광고 배너는 어떤식인가 궁금해서 질문 올립니다.개인정보를 따로 수집하지 않고, 올려주신 처리방침에도 광고에 관해서는 아무런 언급이 없지만광고가 맞춤형 구글광고 아닌가? 라는 생각이 들어서 조금 검색해보니 맞춤형 광고에 개인정보 불법 사용해서 벌금 물었다는 뉴스도 나오고구글애드 홈페이지에는 개인 맞춤 광고리마케팅은 개인 맞춤 광고의 타겟팅 기능 중 하나이며, 이 기능을 이용하면 내 웹사이트를 방문했거나 내 모바일 앱을 사용한 적이 있는 사용자에게 광고를 게재할 수 있습니다. 개인 맞춤 광고를 원하지 않는 사용자에 대해서는 리마케팅 데이터 수집을 중지할 수 있습니다. 그러려면 allow_ad_personalization_signals 매개변수를 사용하면 됩니다.이 매개변수의 기본값은 true로 설정됩니다. 매개변수의 값을 false로 설정하면 개인 맞춤 광고를 위한 데이터 사용이 중지됩니다. 이렇게 나오네요.이 부분에 대해서는 따로 작성을 할 필요가 없는지 아니면 신경쓸 필요 없이 그냥 GPS 정보만 취급하면 되는건지 궁금합니다.
-
미해결Microservice 이해 (with MSA패턴)
헥사고날 아키텍쳐에 대해 좀더 자세히 공부하고싶은데 참고할만한 깃주소 같은게 있을까요 ?
헥사고날 아키텍쳐에 대해 좀더 자세히 공부하고싶은데 참고할만한 깃주소 같은게 있을까요 ? 패키지구조도 사람마다 조금씩 다른거같아서 궁금합니다
-
해결됨만들면서 배우는 리액트 : 기초
깃 강의노트 어디서 볼 수 있나요?
ㅜㅠ강의노트를 어디서 찾아야 하는지 모르겠네용알려주세요~
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ExceptionResolver1 강의 error.bad
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)ㅇ2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)ㅇ3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)ㅇ[질문 내용]messages.properties에error.bad=잘못된 요청 오류입니다. 메세지 사용이라 하고 postman 호출하니영어로 나옵니다 왜 그럴까요?++application.properties에 추가도 했고intellij 인코딩도 utf-8로 했스빈당
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
패킷 클래스 관련 질문입니다.
안녕하세요, Generator로 만든 클래스들(packetHander.cs나 GenPackets.cs, ~~Packetmanager.cs)을 보면 namespace가 없는데요, namespace가 없어도 다른 클래스에서 선언 및 사용이 가능한데요,혹시 namespace 없이 클래스를 선언해 사용하는 것과 namespace를 정의하고 클래스를 선언해 사용하는 것이 어떤 차이가 있는지 알 수 있을까요??그리고 namespace는 책꽂이 같은 개념이라 namespace를 using으로 선언하고 그 scope아래에 클래스를 만들면, 해당 클래스가 어디 위치에 있다는 것을 정의하는 개념으로 사용된다고 알고 있는데요, 이것도 맞을까요??
-
해결됨MariaDB 클라이언트 개발, HeidiSQL
결과창에서 '선택한 행 복사' 안보임
안녕하세요.HEIDISQL 12.3.0.6589 를 사용하고 있습니다. 결과 값에서 데이터복사하기에 우측 마우스를 클릭하면 '복사하기' 외에 '선택한 행복사' 가 나온다고 되어 있는데요. 저는 해당 메뉴가 안보이는데요.버전이 달라서 그런걸까요??
-
미해결MariaDB 클라이언트 개발, HeidiSQL
CSV 업데이트 시 NULL값 관련
안녕하세요.HEIDISQL 12.3.0.6589를 사용하고 있고요. CSV 파일 불러오기 강습내용대로, 그리고 AGE가 NULL 허용으로 되어 있고 기본값을 NULL로 해놨으나, CSV가져오기를 하면경고가 뜨고 데이터를 확인하면 AGE NULL 이어야 하는데 '0'으로 되어있는데요. 그 이유를 모르곘습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 WriteLock의 Yield부분이 헷갈려 질문 드립니다
public void WriteLock() { int desired = (Thread.CurrentThread.ManagedThreadId << 16) & WRITE_MASK; while (true) { for (int i = 0; i < MAX_SPIN_COUNT; i++) { if (Interlocked.CompareExchange(ref flag, desired, EMPTYFLAG) == EMPTY_FLAG) { return; } } Thread.Yield(); } }이코드에서 MAX_SPIN_COUNT까지 시도 해보고 Thread.Yield()로 다른 쓰레드에게 양보한다고 이해하고 있는데 여기서 다시 while(true)로 인해 또다시 반복해서 문을 두드리면 굳이 Yield()를 하는 이유가 무엇인지 모르겠습니다.
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
애니메이션의 BlendData를 쓰는 과정에 대해서
애니메이션 파트의 ReadSkinData()함수를 통해 blendIndices, blendWeights를 쓰는 과정에서 질문이 있습니다.아래 ReadSkinData() 함수는 보시는 바와같이 사용하는 모든 Mesh를 순회하며 그 Mesh 속에서 연관된 Bone을 또 하나하나 전부 순회하는 과정에서 그 Bone에 영향을 받는 Vertex에 blendIndices, blendWeights를 쓰도록 구성이되어 있는데 그렇다면 서로 다른 Mesh에서 동일한 Bone과 연관되어 있다고하면 똑같은 Vertex를 두번 이상 갱신하게 되는 건가요? 만약 이게 아니라면 애초부터 하나의 Bone이 2개 이상의 Mesh와 연관이 될 수가 없나요?전자가 성립한다면 BlendData가 수치상으로는 문제가 없지만 동일한 값을 할당하는 것을 몇번 더 반복해야되는 경우가 생길수도 있어서 궁금해서 질문 드립니다
-
미해결[게임 프로그래머 도약반] DirectX11 입문
vertex shader, rasterize 질문입니다
vertex shader를 처리할때 _vertexBuffer에 들어있는 꼭짓점을 받아서좌표를 변환하는 과정으로 이해했습니다. ia과정에서 나오는 결과물이 mesh라고 하셨는데이부분에서 약간 혼동이 있는 것 같습니다. 제가 생각한 바로는, IA과정 에서는아직 mesh가 그려지진 않았고, 각 점들과 layout, 그 점들로 무엇을 그릴지에 대한 정보가 있는 상태입니다(삼각형). vertexshader에서 좌표계 처리를 하고rasterize과정에서야 점들끼리 잇고 보간을 합니다.(렌더링 범위 지정) 이후 PS과정에서 shaderResource와 uv값을 이용해서실제 색을 칠하는 과정 (수치적으로)을 거친 후에 output merge과정에서 indexBuffer를 참조하여 backBuffer에 실제 렌더하는 과정을 거친후에 고속 복사를 하여 렌더링을 완료하게됩니다. 해당 렌더링 프로세스를 제가 잘못이해한 것인지 궁금합니다.(결과적으로 IA작업에서, 꼭짓점 뿐만 아니라 꼭짓점 사이의 EDGE에 대한 정보도 이미 전부 가공된 채로 VS에 넘어가는것이었나에 대해 궁금합니다.. mesh는 꼭짓점 사이의 edge도 그려져 있지 않나요?)
-
해결됨배달앱 클론코딩 [with React Native]
npm run android 후 번들 에러
제로초님 깃에 있는 setting 파일을 클론 해서 만들고 npm run android를 실행하면우선 다음과 같이 깃 베쉬 에서는 오류 없이 잘됩니다 혹시 모르니 사진과 텍스트 둘다 올리겠습니다82106@DESKTOP-10F7MVV MINGW64 ~/FoodDeliveryApp $ npm run android > fooddeliveryapp@0.0.1 android > react-native run-android info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag. Jetifier found 952 file(s) to forward-jetify. Using 12 workers... info Starting JS server... info Launching emulator... info Successfully launched emulator. info Installing the app... > Task :app:installDebug Installing APK 'app-debug.apk' on 'Nexus_5_API_30(AVD) - 11' for app:debug Installed on 1 device. Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0. Use '--warning-mode all' to show the individual deprecation warnings. See https://docs.gradle.org/6.9/userguide/command_line_interface.html#sec:command_line_warnings BUILD SUCCESSFUL in 9s 67 actionable tasks: 2 executed, 65 up-to-date info Connecting to the development server... 8081 info Starting the app on "emulator-5554"... Starting: Intent { cmp=com.fooddeliveryapp/.MainActivity } 다음으로는 총 3가지의 프로그램이 열리는데 메트로 서버, 중간은 모르겠습니다 , 에뮬레이터 이런식으로 나옵니다 우선 에뮬레이터는 스크롤이 안되서 메트로 서버 에 나오는 오류만 텍스트로 첨부 하겠습니다(다음과 같이 오류가 나옵니다) Failed to construct transformer: Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:69:19) at Object.createHash (node:crypto:133:10) at stableHash (C:\Users\82106\FoodDeliveryApp\node_modules\metro-cache\src\stableHash.js:19:8) at Object.getCacheKey (C:\Users\82106\FoodDeliveryApp\node_modules\metro-transform-worker\src\index.js:593:7) at getTransformCacheKey (C:\Users\82106\FoodDeliveryApp\node_modules\metro\src\DeltaBundler\getTransformCacheKey.js:24:19) at new Transformer (C:\Users\82106\FoodDeliveryApp\node_modules\metro\src\DeltaBundler\Transformer.js:48:9) at C:\Users\82106\FoodDeliveryApp\node_modules\metro\src\Bundler.js:22:29 { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' } BUNDLE ./index.js error: TypeError: Cannot read properties of undefined (reading 'transformFile') at Bundler.transformFile (C:\Users\82106\FoodDeliveryApp\node_modules\metro\src\Bundler.js:48:30) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Object.transform (C:\Users\82106\FoodDeliveryApp\node_modules\metro\src\lib\transformHelpers.js:101:12) at async processModule (C:\Users\82106\FoodDeliveryApp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:137:18) at async traverseDependenciesForSingleFile (C:\Users\82106\FoodDeliveryApp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:131:3) at async Promise.all (index 0) at async initialTraverseDependencies (C:\Users\82106\FoodDeliveryApp\node_modules\metro\src\DeltaBundler\traverseDependencies.js:114:3) at async DeltaCalculator._getChangedDependencies (C:\Users\82106\FoodDeliveryApp\node_modules\metro\src\DeltaBundler\DeltaCalculator.js:164:25) at async DeltaCalculator.getDelta (C:\Users\82106\FoodDeliveryApp\node_modules\metro\src\DeltaBundler\DeltaCalculator.js:94:16) at async DeltaBundler.buildGraph (C:\Users\82106\FoodDeliveryApp\node_modules\metro\src\DeltaBundler.js:50:5) 이런식으로 나옵니다 마지막으로 네이티브 폴더의 app/src/build.gradle에도 문제가 있습니다 이런 식으로 인식을 못하는 것 같습니다 apply plugin: "com.android.application" import com.android.build.OutputFile /** * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets * and bundleReleaseJsAndAssets). * These basically call `react-native bundle` with the correct arguments during the Android build * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the * bundle directly from the development server. Below you can see all the possible configurations * and their defaults. If you decide to add a configuration block, make sure to add it before the * `apply from: "../../node_modules/react-native/react.gradle"` line. * * project.ext.react = [ * // the name of the generated asset file containing your JS bundle * bundleAssetName: "index.android.bundle", * * // the entry file for bundle generation. If none specified and * // "index.android.js" exists, it will be used. Otherwise "index.js" is * // default. Can be overridden with ENTRY_FILE environment variable. * entryFile: "index.android.js", * * // https://reactnative.dev/docs/performance#enable-the-ram-format * bundleCommand: "ram-bundle", * * // whether to bundle JS and assets in debug mode * bundleInDebug: false, * * // whether to bundle JS and assets in release mode * bundleInRelease: true, * * // whether to bundle JS and assets in another build variant (if configured). * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants * // The configuration property can be in the following formats * // 'bundleIn${productFlavor}${buildType}' * // 'bundleIn${buildType}' * // bundleInFreeDebug: true, * // bundleInPaidRelease: true, * // bundleInBeta: true, * * // whether to disable dev mode in custom build variants (by default only disabled in release) * // for example: to disable dev mode in the staging build type (if configured) * devDisabledInStaging: true, * // The configuration property can be in the following formats * // 'devDisabledIn${productFlavor}${buildType}' * // 'devDisabledIn${buildType}' * * // the root of your project, i.e. where "package.json" lives * root: "../../", * * // where to put the JS bundle asset in debug mode * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", * * // where to put the JS bundle asset in release mode * jsBundleDirRelease: "$buildDir/intermediates/assets/release", * * // where to put drawable resources / React Native assets, e.g. the ones you use via * // require('./image.png')), in debug mode * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", * * // where to put drawable resources / React Native assets, e.g. the ones you use via * // require('./image.png')), in release mode * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", * * // by default the gradle tasks are skipped if none of the JS files or assets change; this means * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to * // date; if you have any other folders that you want to ignore for performance reasons (gradle * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ * // for example, you might want to remove it from here. * inputExcludes: ["android/**", "ios/**"], * * // override which node gets called and with what additional arguments * nodeExecutableAndArgs: ["node"], * * // supply additional arguments to the packager * extraPackagerArgs: [] * ] */ project.ext.react = [ enableHermes: false, // clean and rebuild if changing ] apply from: "../../node_modules/react-native/react.gradle" /** * Set this to true to create two separate APKs instead of one: * - An APK that only works on ARM devices * - An APK that only works on x86 devices * The advantage is the size of the APK is reduced by about 4MB. * Upload all the APKs to the Play Store and people will download * the correct one based on the CPU architecture of their device. */ def enableSeparateBuildPerCPUArchitecture = false /** * Run Proguard to shrink the Java bytecode in release builds. */ def enableProguardInReleaseBuilds = false /** * The preferred build flavor of JavaScriptCore. * * For example, to use the international variant, you can use: * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` * * The international variant includes ICU i18n library and necessary data * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that * give correct results when using with locales other than en-US. Note that * this variant is about 6MiB larger per architecture than default. */ def jscFlavor = 'org.webkit:android-jsc:+' /** * Whether to enable the Hermes VM. * * This should be set on project.ext.react and mirrored here. If it is not set * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode * and the benefits of using Hermes will therefore be sharply reduced. */ def enableHermes = project.ext.react.get("enableHermes", false); /** * Architectures to build native code for in debug. */ def nativeArchitectures = project.getProperties().get("reactNativeDebugArchitectures") android { ndkVersion rootProject.ext.ndkVersion compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { applicationId "com.fooddeliveryapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" } splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false // If true, also generate a universal APK include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" } } signingConfigs { debug { storeFile file('debug.keystore') storePassword 'android' keyAlias 'androiddebugkey' keyPassword 'android' } } buildTypes { debug { signingConfig signingConfigs.debug if (nativeArchitectures) { ndk { abiFilters nativeArchitectures.split(',') } } } release { // Caution! In production, you need to generate your own keystore file. // see https://reactnative.dev/docs/signed-apk-android. signingConfig signingConfigs.debug minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } // applicationVariants are e.g. debug, release applicationVariants.all { variant -> variant.outputs.each { output -> // For each separate APK per architecture, set a unique version code as described here: // https://developer.android.com/studio/build/configure-apk-splits.html // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc. def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] def abi = output.getFilter(OutputFile.ABI) if (abi != null) { // null for the universal-debug, universal-release variants output.versionCodeOverride = defaultConfig.versionCode * 1000 + versionCodes.get(abi) } } } } dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+" // From node_modules implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { exclude group:'com.facebook.fbjni' } debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { exclude group:'com.facebook.flipper' exclude group:'com.squareup.okhttp3', module:'okhttp' } debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") { exclude group:'com.facebook.flipper' } if (enableHermes) { def hermesPath = "../../node_modules/hermes-engine/android/"; debugImplementation files(hermesPath + "hermes-debug.aar") releaseImplementation files(hermesPath + "hermes-release.aar") } else { implementation jscFlavor } } // Run this once to be able to run the application with BUCK // puts all compile dependencies into folder libs for BUCK to use task copyDownloadableDepsToLibs(type: Copy) { from configurations.implementation into 'libs' } apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) 제가 amd cpu를 사용중이라 그에 맞게 환경 변수도 구글링해서 적용을 해놨는데 혹시 여기에 문제가 있을까요? 우선 환경 변수도 첨부 하겠습니다 마지막으로 현재 안드로이드 스튜디오 sdk 세팅 상태입니다ㅠㅠ 뭐가 문제 일까요
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
firebase auth import 오류
안녕하세요! 강의 수강하고 있는 학생입니다. 무조건 arctic fox 버전을 사용해야지 auth import가 가능한걸까요?dolphin 버전 사용하고 있는데package com.example.fapplication import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import com.google.firebase.auth.FirebaseAuth import com.google.firebase.ktx.Firebase class JoinActivity : AppCompatActivity() { private lateinit var auth: FirebaseAuth override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_join) auth = Firebase.auth } }마지막 firebase.auth의 auth가 import가 안되서 질문드립니다plugins { id 'com.android.application' version '7.3.0' apply false id 'com.android.library' version '7.3.0' apply false id 'org.jetbrains.kotlin.android' version '1.7.10' apply false id("com.google.gms.google-services") version "4.4.0" apply false }plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' id("com.google.gms.google-services") } android { namespace 'com.example.fapplication' compileSdk 32 viewBinding{ enabled true } defaultConfig { applicationId "com.example.fapplication" minSdk 24 targetSdk 32 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } dataBinding { enabled true } } dependencies { implementation("com.google.firebase:firebase-analytics-ktx") implementation(platform("com.google.firebase:firebase-bom:32.3.1")) implementation 'androidx.core:core-ktx:1.7.0' implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.google.android.material:material:1.5.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' implementation("com.google.firebase:firebase-auth-ktx") }