2016-06-05 2 views
0

수행 코코스이 proj.android 스튜디오java.util.zip.ZipException을 수정하는 방법 : android studio cocos compile하는 동안 중복 항목이 있습니까?

cocos compile -m debug -p android -NDK-MODE debug --app-abi armeabi --android-studio 

나는 아래의 예외를 얻고 위해 컴파일하는 동안.

': BreakPots : transformClassesWithJarMergingForDebug'작업 실행에 실패했습니다.

com.android.build.api.transform.TransformException : java.util.zip.ZipException는 : 항목을 중복 : 안드로이드/지원/V4/폴더의 유틸리티/LongSparseArray.class

보려면 다음을 보면 내 빌드에서. 안드로이드 스튜디오 licocos2dx 모듈에서 등급. libs와 스크린 샷을 보여

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 22 
    buildToolsVersion '22.0.1' 
    defaultConfig { 
     versionCode 1 
     versionName "1.0" 
     minSdkVersion 15 
     targetSdkVersion 22 

    } 
    sourceSets.main { 
     aidl.srcDir "../java/src" 
     java.srcDir "../java/src" 
     manifest.srcFile "AndroidManifest.xml" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    productFlavors { 
    } 
} 

dependencies { 

    compile fileTree(include: ['*.jar'], dir: '../java/libs') 
    compile project(':facebook_lib') 


} 

프로젝트 구조 : enter image description here 내 Android.mk 파일 내용

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d) 
$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/external) 
$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/cocos) 
$(call import-add-path, $(LOCAL_PATH)) 

LOCAL_MODULE := cocos2dcpp_shared 

LOCAL_MODULE_FILENAME := libcocos2dcpp 

LOCAL_SRC_FILES := hellocpp/main.cpp \ 
../../../Classes/AppDelegate.cpp \ 
../../../Classes/GameScene.cpp 

LOCAL_CPPFLAGS := -DSDKBOX_ENABLED 
LOCAL_LDLIBS := -landroid \ 
-llog 

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../Classes 

LOCAL_WHOLE_STATIC_LIBRARIES := PluginSdkboxAds \ 
sdkbox \ 
PluginReview \ 
PluginAdMob \ 
PluginFacebook \ 
PluginOneSignal \ 
PluginSdkboxPlay 

# _COCOS_HEADER_ANDROID_BEGIN 
# _COCOS_HEADER_ANDROID_END 


LOCAL_STATIC_LIBRARIES := cocos2dx_static 

##LOCAL_WHOLE_STATIC_LIBRARIES += PluginAdMob 
##LOCAL_WHOLE_STATIC_LIBRARIES += sdkbox 
##LOCAL_WHOLE_STATIC_LIBRARIES += android_native_app_glue 
##LOCAL_LDLIBS += -landroid 
##LOCAL_LDLIBS += -llog 
##LOCAL_WHOLE_STATIC_LIBRARIES += PluginSdkboxPlay 
##LOCAL_WHOLE_STATIC_LIBRARIES += PluginOneSignal 
##LOCAL_WHOLE_STATIC_LIBRARIES += sdkbox 

# _COCOS_LIB_ANDROID_BEGIN 
# _COCOS_LIB_ANDROID_END 

include $(BUILD_SHARED_LIBRARY) 

$(call import-add-path,$(LOCAL_PATH)) 

$(call import-module,.) 

$(call import-module, ./sdkbox) 
$(call import-module, ./pluginsdkboxads) 
$(call import-module, ./pluginreview) 
$(call import-module, ./pluginadmob) 
$(call import-module, ./pluginfacebook) 
$(call import-module, ./pluginonesignal) 
$(call import-module, ./pluginsdkboxplay) 

# _COCOS_LIB_IMPORT_ANDROID_BEGIN 
# _COCOS_LIB_IMPORT_ANDROID_END 

답변

1

아무도 응답하지 않았기 때문에 나는이 자신을 대답하고있다.

직접 고쳤습니다. 해결책은 아주 간단합니다. 두 build.gradle 파일이 있습니다. 각 모듈마다 하나씩.

"App"모듈의 build.gradle 파일에서 android가 sdk 버전을 컴파일하고 대상을 23으로 만들었지 만 "libcocos2dx"모듈의 build.gradle 파일에서 android 컴파일 SDK 버전과 대상을 22로 컴파일했습니다. 이 모든 드라마.

build.gradle 파일에서 Made 버전을 22로 설정하면 매력적으로 작동합니다.

업데이트 :

나중에 23 버전을 증가 "org.apache ....."또 다른 Gradle을 빌드 문제를 내놓았다 한

. "libcocos2dx"모듈의 build.gradle 파일에 아래 줄을 추가하여 수정했습니다.

android { 
    useLibrary 'org.apache.http.legacy' 
}