본문 바로가기

반응형

Programming/Xamarin

(27)
Xamarin Android.Util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. 안드로이드 마시멜로(6.0) 환경에서 앱을 테스트하다가 아래 오류가 발생했다. Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. 해결방법은 Intent에 FLAG_ACTIVITY_NEW_TASK 플래그를 추가해주면 된다. xamarin에서는 아래와 같이 ActivityFlags enum을 사용해 설정해준다. if (Build.VERSION.SdkInt == BuildVersionCodes.M) alarmActivityIntent.AddFlags(ActivityFlags.NewTask); 안드로이드 누가(7.0)이상에서는 문제가 없는 것으로 보아 6.0과 default 설정값..
System.IO.PathTooLongException 원인 및 해결방법 재현 스텝: 이름이 긴 Xamarin.Forms 설루션 생성 및 Android project build시 컴파일 에러로 발생 (해당 케이스의 경우 솔루션명이 26글자였음) Detail : Error The "Javac" task failed unexpectedly. System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. at System.IO.LongPathHelper.Normalize(Strin..
@(Content) build action is not supported Xamarin.forms 안드로이드 프로젝트 쪽에서 빌드 액션을 지원하지 않는다는 경고가 어느 순간부터 보이기 시작했다. 구체적인 파일을 확인해보니 아래와같이 전부 이미지 파일이었고 파일명을 보고 있자니 최근 추가했던 PlayStore 업로드용 아이콘, 스크린샷 이었다. 해당 파일들은 앱 상에서 사용하는 것이 아니고 관리 목적으로 프로젝트에 포함만 시켜놓았던 건데 안드로이드 프로젝트의 Resources 폴더가 아닌 별도 폴더에 추가하면서 위와 같은 경고가 발생하고 있었다. Content로 설정되어있는 각 이미지 파일들의 Build Action을 None으로 바꿔주면 경고가 사라진다. (Build Action은 Visual Studio에서 해당 이미지파일 우클릭 - Properties에 들어가면 확인할 수..
Xamarin forms Application Current Properties 사용시 주의사항 xamarin forms에서는 모바일 기기 로컬에 데이터를 저장/사용할 수 있도록 Properties라는 이름의 Dictionary를 제공한다. Ref : https://docs.microsoft.com/ko-kr/xamarin/xamarin-forms/app-fundamentals/application-class#Properties_Dictionary Xamarin.Forms App 클래스 - Xamarin 이 문서에서는 기본 App 클래스의 기능을 설명합니다. 이 클래스에는 앱의 초기 페이지로 설정할 속성과 수명 주기 상태 변경 전체에 걸친 단순 값을 저장하는 영구 사전이 포함되어 있습니다. docs.microsoft.com 해당 Dictionary를 사용할때 주의할 점은 저장할 값의 타입이 기본형식..
Xamarin forms android passing value from Activity to Activity. 자마린 폼즈 안드로이드 엑티비티 벨류 전달하기. Android에서 Activity란? 액티비티 | Android Developers An Activity is an application component that provides a screen with which users can interact in order to do something, such as dial the phone, take a photo, send an email, or view a map. Each activity is given a window in which to draw its user interface… developer.android.com 어떤 시나리오에선 Activity에서 다른 Activity로 value를 전달해야하는 경우가 있다. 예를 들면 MainActivit..
Xamarin forms Playstore android app 강제 업데이트 상황에 따라 안드로이드 앱에서 업데이트를 강제하는 것이 필요할 수 있다. (예를 들어 해당 업데이트에 프로토콜이 변경되었다거나..) 하지만 앱에서 플레이스토어에 최신 버전 정보를 요청하는 것은 기본적으로 막혀있다. 이러한 이유로 강제업데이트를 하려면 앱의 최신 버전 정보를 가지고 있는 무엇(예시에선 앱의 서버)인가가 필요하다. 업데이트 로직은 다음과 같다. 1. 앱 실행시 최신 버전 정보 요청 2. 버전정보 받음 3. 최신버전정보와 자신(android app)의 버전 정보 비교 4. 전달받은 버전이 더 높으면(=업데이트가 필요하다) 앱 종료 및 플레이스토어로 링크 4-2. 그렇지 않을경우 앱 정상 실행 코드로 보면 대강 아래와 같다. var latestVersionString = Task.Run(asyn..

반응형