2016-09-27 3 views
2

내 유니티 앱에서 Admob 및 Google 플레이 서비스를 사용하고 있습니다.CommandInvokationFailure : Android 매니페스트를 병합 할 수 없습니다. 자세한 내용은 콘솔을 참조하십시오. 이미 프로젝트의 모든 매니페스트 파일을 변경했습니다.

하지만 여전히 나는 다음과 같은 오류가 점점 오전 :

내가 매니페스트 파일 오류를 병합 무엇입니까하지만 난 이미 내 프로젝트의 모든 매니페스트 파일을 변경 한 (값 MinSDk, TargetSDK는 @android).

CommandInvokationFailure: Unable to merge android manifests. 
See the Console for more details. 
C:\Program Files\Java\jdk1.8.0_101\bin\java.exe -Xmx2048M-Dcom.android.sdkmanager.toolsdir="E:\adt-bundle-windows-x86-20130717\sdk\tools" -Dfile.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" - 

stderr[ 
Error: [Temp\StagingArea\AndroidManifest-main.xml:22, F:\Unity_workspace\Game\Temp\StagingArea\android-libraries\play-services-basement-9.6.1\AndroidManifest.xml:5] Trying to merge incompatible /manifest/application/meta-data[@name=com.google.android.gms.version] element: 
<meta-data 
     @android:name="com.google.android.gms.version" 
-- @android:value="8115000"> 
<meta-data 
     @android:name="com.google.android.gms.version" 
++ @android:value="@integer/google_play_services_version"> 
] 

stdout[ 
[Temp\StagingArea\AndroidManifest-main.xml:22, F:\Unity_workspace\Game\Temp\StagingArea\android-libraries\MainLibProj\AndroidManifest.xml:13] Skipping identical /manifest/application/meta-data[@name=com.google.android.gms.version] element. 
[Temp\StagingArea\AndroidManifest-main.xml:24, F:\Unity_workspace\Game\Temp\StagingArea\android-libraries\play-services-ads-lite-9.6.1\AndroidManifest.xml:10] Skipping identical /manifest/application/activity[@name=com.google.android.gms.ads.AdActivity] element. 
] 
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) 
UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) 
UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) 
UnityEditor.HostView:OnGUI() 

도움이되었습니다.

답변

0

예상 한대로 프로젝트의 어딘가에 google_play_services_version 필드가 하드 코딩되어 있습니다.

코드 편집기에서 전체 솔루션을 검색하여 8115000 값을 찾으십시오.

값을 "@integer/google_play_services_version"으로 바꿉니다.

당신은 이미 모든 매니 페스트를 겪어 왔지만 그것이 매니 페스트에 없을 수도 있다고 말했습니까? 이것은 값 XML 파일 일 수 있습니다.

+0

나는 당신이 말한대로했지만 이제는 "클래스를 dex 형식으로 변환 할 수 없습니다"라는 메시지가 나타납니다. https://kobra.io/#/e/-KSv1lTpFjFMRqElJhCv에서 내 콘솔 출력을 넣으십시오. . thanks –

+0

이것은 실제로 좋은 소식입니다. 즉, 가치 문제가 해결되었음을 의미하지만 이제는이 새로운 오류가 발생했습니다. 통합성에있어 안드로이드 오류의 문제점은 그들에게 수많은 정보가 있다는 것입니다. 이 라인을 참조하십시오. 'code' 잡히지 않은 번역 오류 : java.lang.IllegalArgumentException : 이미 추가되었습니다 : Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat; 'code' 실제 문제입니다. 그것은 화합 프로젝트의 어딘가에 두 가지 버전의 Android Support Library 버전 4가 있음을 의미합니다. 이미 추가 된 클래스를 추가하려고하기 때문에 Unity가 불평합니다. – turnipinrut

+0

지원되는 v4 jar 파일 중 하나를 삭제하십시오. 어느 것이 든 상관 없습니다. – turnipinrut