2015-09-21 6 views
11

私のアプリケーションをgraleプラグイン1.3.0でリリースモードでビルドする際の問題のため、1.4.0(ベータ2)に切り替えました。問題。いくつかの味が完全に構築するのに対しSDKビルドツール21以降を使用して複数の密度のアセットをフィルタリングできない

はしかし、他の人は自分のビルドには、次のエラーメッセージを表示して中止されてい:

は、SDKのビルドツール21以降を使用して複数の密度のために資産をフィルタリングすることはできません。代わりにapk分割を使用することを検討してください。

私はこれらの味のリソースで何をすべきか、あるいはこのエラーがいくつかの味にしか現れず、すべてではない理由さえも知りませんでした。

編集:

apply plugin: 'com.android.application' 

android { 
    signingConfigs { 
     config { 
     } 
    } 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 
    defaultConfig { 
     applicationId "com.example.appname" 
     minSdkVersion 8 
     targetSdkVersion 23 
     versionCode 1 
     versionName '0.0.1' 
    } 
    buildTypes { 
     release { 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      minifyEnabled true 
      zipAlignEnabled true 
      signingConfig signingConfigs.config 
     } 
     debug { 
      applicationIdSuffix 'debug' 
      versionNameSuffix '_debug' 
     } 
    } 
    flavorDimensions "googleplay" 
    productFlavors { 
     noplay { 
      dimension "googleplay" 
      versionCode Integer.parseInt(defaultConfig.versionCode + "0") 
      buildConfigField "boolean", "HAS_GOOGLE_PLAY", "false" 

      resConfigs "ldpi", "mdpi" 
      // so far we are using the noplay flavor only for old devices, which do not have hidpi 
     } 
     play { 
      dimension "googleplay" 
      versionCode Integer.parseInt(defaultConfig.versionCode + "1") 
      buildConfigField "boolean", "HAS_GOOGLE_PLAY", "true" 
      minSdkVersion 9 
     } 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 

    // Google Play services (analytics) 
    playCompile 'com.google.android.gms:play-services-analytics:8.1.0' 

    // ActionBar and support libraries 
    compile 'com.android.support:appcompat-v7:23.0.1' 
    compile 'com.android.support:support-v4:23.0.1' 
} 
+0

投稿するbuild.gradle(署名オプションを削除することを忘れないでください)。 –

+1

完了;御時間ありがとうございます。 –

+0

どのバリアントが失敗しますか?それはいつも同じものですか? – stkent

答えて

11

resConfigs build.gradleは密度とアーキテクチャのためAPK splitsに置き換えられます。 sentence次の点に注意してください:21より古いビルドツールを使用する場合

はあなたもresConfigs を追加することができます「nodpi」、「hdpi」もパッケージされている密度のフォルダを制限します。 代わりに、apk分割を使用して の密度の異なるデバイスに異なるapkを提供してください。

bug report for this issueがあります。

問題のあるresConfigを削除する必要があり、代わりにapk分割を使用する必要があります。

また、この問題を回避するには、build-tool 20.0.0に切り替えるのが適切です。

+0

ポインタをありがとう。 apk分割の詳細:http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splitsおよびhttp://geeks.everything.me/2015/06/10/あなたのアパートを取る - パート1/ –

+0

OMG - スプリットが突然すべての作業を停止する原因となった証拠を探してきました!驚くべきことに、警告やこれ以外の通知はありません... – slott

関連する問題