missing adactivity with android.configchanges in androidmanifest.xml

광고를 붙일때 위와같은 에러가 광고창에 찍혔다.

확인해 보니 AndroidManifest.xml 파일에 코드를 추가해 주어야한다.

전체구조는 아래 와 같다 굵은색이 추가한 부분이고 기본적으로 permission 도 아래처럼 주어야한다.

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="dustSeocheon.dustSeocheon" android:installLocation="auto">
 <uses-sdk android:minSdkVersion="21" />
 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <application android:allowBackup="true" android:label="@string/app_name">
    <!-- Google Mobile Ads Activity -->
    <activity android:name="com.google.android.gms.ads.AdActivity"
              android:label="@string/app_name"
              android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    </activity>
    <!-- Denote the referenced Google Play services version -->
    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

  </application>
</manifest>

Unhandled Exception:

Java.Lang.RuntimeException: <Timeout exceeded getting exception details> 발생 

 

위에러는 XAML 에서 먼가 잘못선언이 되었을때 발생될수 있는 에러라고 한다.

나같은 경우는 minWidth, minHeight 항목을 다 제거하니 오류가 사라졌는데

내가 설정한 크기가 min 값보다 더 작었거나 max 값보다 큰 경우 발생될수 있다고 한다.

 

XAML 항목이 잘못되어도 빌드할때 에러가 발견되지 않는 경우가 있어 삽질은 좀해야한다.ㅜㅠ

 

참고

https://stackoverflow.com/questions/47417950/system-argumentexception-timeout-exceeded-getting-exception-details-xamarin-f

Debug 에서는 에러가 발생이 안되었는데

배포하려고 Release 에서 빌드하니 아래와 같은 에러가 발생되었다.

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류  "LinkAssemblies" 작업에서 예기치 않은 오류가 발생했습니다.
Mono.Linker.MarkException: Error processing method: 'System.Void Android.Support.V4.App.ActivityCompatApi23/SharedElementCallbackImpl::n_OnSharedElementsArrived_Ljava_util_List_Ljava_util_List_Landroid_app_SharedElementCallback_OnSharedElementsReadyListener_(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr)' in assembly: 'Xamarin.Android.Support.Compat.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve Android.App.SharedElementCallback/IOnSharedElementsReadyListener
   위치: Mono.Linker.Steps.MarkStep.HandleUnresolvedType(TypeReference reference)
   위치: Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
   위치: MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference)
   위치: Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
   위치: Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
   위치: Mono.Linker.Steps.MarkStep.ProcessQueue()
   --- 내부 예외 스택 추적의 끝 ---
   위치: Mono.Linker.Steps.MarkStep.ProcessQueue()
   위치: Mono.Linker.Steps.MarkStep.ProcessEntireQueue()
   위치: Mono.Linker.Steps.MarkStep.Process()
   위치: Mono.Linker.Steps.MarkStep.Process(LinkContext context)
   위치: Mono.Linker.Pipeline.Process(LinkContext context)
   위치: MonoDroid.Tuner.Linker.Process(LinkerOptions options, LinkContext& context)
   위치: Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
   위치: Xamarin.Android.Tasks.LinkAssemblies.Execute()
   위치: Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   위치: Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() SMSConveyPro  

프로젝트->속성->Android 옵션 에서 아래 처럼 Linking 항목을 SDK 및 사용자 어셈블리 로 변경하니 정상적으로 빌드가 되었다.

 

참고 : https://forums.xamarin.com/discussion/22358/building-release-version-for-android-failed

apk 파일로 변환하기 위해 보관을 실행했을 때

Mono 런타임이 설정되었습니다.

선택된 빌드 구성은 빠른 배포를 위해 공유되는 Mono 런타임을 사용합니다...(중략)

 

위와 같은 에러가 발생된경우 Debug 모드를 Release 모드로 바꿔야한다.^^

Xamarin.Android 에서 

Adapter 생성자 부분의 : base() 에서 아래와 같이 에러가 발생되었다.

Unhandled Exception:

Java.Lang.ClassNotFoundException: md56301966bdf5adab103e6eb62103e8aa0.AlarmAdapter 발생

 

분명 다른 프로젝트에서도 이상없이 사용했던건데 에러가 나서 원인을 찾아봤다..

해결은 프로젝트 정리;;

프로젝트를 정리하고 재빌드 하니 위에러가 사라졌다..;;

 

결과는 아래와 같습니다.

시간은 millisecond 단위 입니다.


millisecond CPU Memory Disk
Count Android Xamarin Android Xamarin Android Xamarin
평균 249.5 147.5 102.2 27 7708.1 12753.7
1 240 137 97 24 8321 13701
2 227 143 109 27 8048 13430
3 257 148 85 26 7737 13564
4 281 161 184 62 7792 13614
5 234 153 94 31 7713 13284
6 270 149 89 17 7524 11229
7 253 185 92 21 7471 12094
8 252 125 102 28 7889 12344
9 250 133 89 16 7318 12031
10 231 141 81 18 7268 12246



결론,

Cpu, Memory 속도는 Xamarin 이 빠르고

Disk 는 Android 가 빠르다 입니다.

 

https://www.visualstudio.com/ko/app-center/?utm_source=VSSubscriptionsNewsNov2017&wt.mc_id=AID642788_EML_5311981&rr=http%3A%2F%2Fm.facebook.com%2F

여러장치에서 테스트가 가능하고 빌드및 배포가 가능하다고한다

조만간 시도해봐야겠다

+ Recent posts

티스토리 툴바