2017-07-11 3 views
1

64kのメソッド制限を超えた後、Unityプロジェクトをgradleビルドとしてエクスポートしようとしました。 Androidのメーカーにそれをインポートした後、私はエラーを得たデフォルトの複数のDexファイルUnity gradle

Error: A library uses the same package as this project: com.myproject.name

このquestionを見つけた後、私は私のGradleのプロジェクトに

enforceUniquePackageName = false 

を追加しました。今私は、Android Studioでプロジェクトを実行することができますが、その質問への回答で述べたように、私はAPKを構築しようとすると、私は今、次のエラーを取得する

Multiple dex files define Lcom/myproject/myappname/BuildConfig;

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN 
buildscript { 
    repositories { 
     jcenter() 
    } 

    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.3' 
    } 
} 

allprojects { 
    repositories { 
     flatDir { 
     dirs 'libs' 
     } 
    } 
} 

apply plugin: 'com.android.application' 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile(name: 'ShortcutBadger-1.1.5', ext:'aar') 
    compile(name: 'animated-vector-drawable-23.4.0', ext:'aar') 
    compile(name: 'appcompat-v7-23.4.0', ext:'aar') 
    compile(name: 'cardview-v7-23.4.0', ext:'aar') 
    compile(name: 'customtabs-23.4.0', ext:'aar') 
    compile(name: 'facebook-android-sdk-4.17.0', ext:'aar') 
    compile(name: 'facebook-android-wrapper-7.9.4', ext:'aar') 
    compile(name: 'firebase-analytics-11.0.2', ext:'aar') 
    compile(name: 'firebase-analytics-impl-11.0.2', ext:'aar') 
    compile(name: 'firebase-app-unity-4.0.2', ext:'aar') 
    compile(name: 'firebase-common-11.0.2', ext:'aar') 
    compile(name: 'firebase-core-11.0.2', ext:'aar') 
    compile(name: 'firebase-iid-11.0.2', ext:'aar') 
    compile(name: 'firebase-messaging-11.0.2', ext:'aar') 
    compile(name: 'firebase-messaging-unity-4.0.2', ext:'aar') 
    compile(name: 'play-services-base-11.0.2', ext:'aar') 
    compile(name: 'play-services-basement-11.0.2', ext:'aar') 
    compile(name: 'play-services-gcm-11.0.2', ext:'aar') 
    compile(name: 'play-services-iid-11.0.2', ext:'aar') 
    compile(name: 'play-services-tasks-11.0.2', ext:'aar') 
    compile(name: 'support-compat-26.0.0-alpha1', ext:'aar') 
    compile(name: 'support-core-ui-26.0.0-alpha1', ext:'aar') 
    compile(name: 'support-core-utils-26.0.0-alpha1', ext:'aar') 
    compile(name: 'support-fragment-26.0.0-alpha1', ext:'aar') 
    compile(name: 'support-media-compat-26.0.0-alpha1', ext:'aar') 
    compile(name: 'support-v4-26.0.0-alpha1', ext:'aar') 
    compile(name: 'support-vector-drawable-23.4.0', ext:'aar') 
    compile(name: 'utnotifications', ext:'aar') 
    compile project(':Firebase') 
    compile project(':UTNotificationsRes') 
    compile fileTree(dir: 'fabric-init/libs', include: ['*.jar']) 
    compile fileTree(dir: 'crashlytics-wrapper/libs', include: ['*.jar']) 
    compile fileTree(dir: 'crashlytics/libs', include: ['*.jar']) 
    compile fileTree(dir: 'beta/libs', include: ['*.jar']) 
    compile fileTree(dir: 'answers/libs', include: ['*.jar']) 
    compile project(':fabric') 
    compile (project(':unity-android-resources')) 
} 

android { 
    compileSdkVersion 25 
    buildToolsVersion '26.0.0' 
    enforceUniquePackageName = false 

    defaultConfig { 
     targetSdkVersion 25 
    } 

    lintOptions { 
     abortOnError false 
     disable 'MissingTranslation' 
    } 
    signingConfigs { 
     //omitted! 
    } 

    buildTypes { 
     debug { 
      jniDebuggable true 
     } 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt' 
      signingConfig signingConfigs.release 
     } 
    } 

} 
を次のように私のGradleファイルがあります

別のプラグインを削除してビルドしようとすると、最後のプラグインのunity-android-resourcesをコメントアウトするとプロジェクトを構築できますが、もちろん私のアプリケーションは正しく動作しません。このエラーはなぜここで発生するのですか?この問題をどうやって解決できますか?

+0

Androidスタジオにどのようにインポートしますか? – Programmer

+0

私はUnity 5.5.0f3を使用しています。ビルドシステムは "プロジェクトをエクスポート"チェックボックスをオンにして "Gradle(new)"に設定されています。プロジェクトの内部に)インポートすると、Androidスタジオでgradleバージョンのエラーが発生し、2.3.3にアップデートしました。 –

+0

[Gradle(New)]でエクスポートしないでください。 (レガシー)。 [this](https://stackoverflow.com/questions/38980792/exporting-and-running-unity3d-project-to-android-studio/39008549#39008549)の手順に従います。それを行う方法を示し、その後にgradleが追加されます。次に、その手順に従ってインポートします。それが失敗した場合は、「内部(デフォルト)」としてエクスポートし、次にリンク先の手順に従います。あなたが** Android Studioで**エラーを取得することを忘れないでください。ステップ2Aはそのエラーを修正する。 – Programmer

答えて

1

あなたの最後のプロジェクトであるunity-android-resourcesは、基本アプリケーション(gradleパラメータapplicationId)のAndroidManifest.xmlと同じpackageNameを持ちます。他のpackageNameを書くことができます。たとえば、com.example.myapplication.resourcesです。

+0

ご返信ありがとうございます。このパッケージは、プラグイン> Androidディレクトリ内の「res」フォルダを使用する場合、Unityによって作成されるデフォルトのパッケージです。これは、アプリ名のローカリゼーションを追加するために必要です。この問題を回避するには、ローカライズされた名前を含むプラグインを作成してインポートする必要があります。 https://forum.unity.com/threads/unity-5-6-gradle-build-problem.465074 /#post-3186363 –

関連する問題