web-dev-qa-db-ja.com

libpngエラー:PNGファイルではありません

Android Studioビルドツールを1.3.1以降にアップグレードしようと何度か試みましたが、常にこのlibpngエラーが発生します。Mavenの依存関係を完全に削除することでエラーの1つを解決しました( gradleコンソールは問題のあるファイルがどこにあるかを正確に示していましたが、同じエラーが発生し、問題のファイルがどこにあるかを示すポインターがありません。何かが足りませんか?gradleコンソールのログは次のとおりです。

Executing tasks: [:app:generateDebugSources, :app:generateDebugAndroidTestSources]

Configuration on demand is an incubating feature.
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidDatabindingAdapters10Rc3Library UP-TO-DATE
:app:prepareComAndroidDatabindingLibrary10Rc3Library UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72310Library UP-TO-DATE
:app:prepareComAndroidSupportCardviewV72310Library UP-TO-DATE
:app:prepareComAndroidSupportDesign2310Library UP-TO-DATE
:app:prepareComAndroidSupportMediarouterV72220Library UP-TO-DATE
:app:preDebugAndroidTestBuild UP-TO-DATE
:app:prepareComAndroidSupportMultidex101Library UP-TO-DATE
:app:prepareComAndroidSupportPercent2310Library UP-TO-DATE
:app:prepareComAndroidSupportRecyclerviewV72310Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42310Library UP-TO-DATE
:app:prepareComCrashlyticsSdkAndroidAnswers132Library UP-TO-DATE
:app:prepareComCrashlyticsSdkAndroidBeta113Library UP-TO-DATE
:app:prepareComCrashlyticsSdkAndroidCrashlytics252Library UP-TO-DATE
:app:prepareComCrashlyticsSdkAndroidCrashlyticsCore235Library UP-TO-DATE
:app:prepareComFacebookAndroidFacebookAndroidSdk410Library UP-TO-DATE
:app:prepareComFacebookFrescoDrawee061Library UP-TO-DATE
:app:prepareComFacebookFrescoFbcore061Library UP-TO-DATE
:app:prepareComFacebookFrescoFresco061Library UP-TO-DATE
:app:prepareComFacebookFrescoImagepipeline061Library UP-TO-DATE
:app:prepareComGithubRahatarmanahmedCircularprogressview232Library UP-TO-DATE
:app:prepareComGoogleAndroidExoplayerExoplayerR142Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServices810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAds810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAnalytics810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAppindexing810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAppinvite810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAppstate810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesBase810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesBasement810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesCast810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesDrive810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesFitness810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesGames810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesGcm810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesIdentity810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesLocation810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesMaps810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesMeasurement810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesNearby810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesPanorama810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesPlus810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesSafetynet810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesVision810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesWallet810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesWearable810Library UP-TO-DATE
:app:prepareIoFabricSdkAndroidFabric136Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources
AAPT err(Facade for 961886319): libpng error: Not a PNG file

 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> Some file crunching failed, see logs for details

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 4.398 secs

以下は私のbuild.gradle(Module:app)です

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.Android.application'
apply plugin: 'io.fabric'

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "us.revibe.revibe"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled = true
    }
    buildTypes {
        debug{
            debuggable true
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
    dataBinding {
        enabled = true
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}

repositories {
//    maven { url 'http://maven.livotovlabs.pro/content/groups/public' }
    maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.Android.support:appcompat-v7:23.1.0'
    compile 'com.Android.support:cardview-v7:23.1.0'
    compile 'com.Android.support:recyclerview-v7:23.1.0'
    compile 'com.Android.support:percent:23.1.0'
    compile 'com.Android.support:design:23.1.0'
    compile files('libs/core-3.2.1.jar')
    compile files('libs/retrofit-1.9.0.jar')
    compile files('libs/connectionclass-1.0.1.jar')
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
    compile 'com.squareup.okhttp:okhttp:2.3.0'
    compile 'com.joanzapata.Android:android-iconify:1.0.8'
    compile 'com.github.rahatarmanahmed:circularprogressview:2.3.2'
    compile 'com.facebook.Android:facebook-Android-sdk:4.1.0'
    compile 'com.facebook.fresco:fresco:0.6.1+'
    compile 'com.google.Android.gms:play-services:8.1.0'
    compile 'com.Android.support:multidex:1.0.1'
    compile 'com.amazonaws:aws-Android-sdk-core:2.+'
    compile 'com.amazonaws:aws-Android-sdk-cognito:2.+'
    compile 'com.amazonaws:aws-Android-sdk-s3:2.+'
//    compile ('eu.livotov.labs:zxscanlib:2.0.1@aar') {transitive=true}

    compile 'com.google.Android.exoplayer:exoplayer:r1.4.2'
    compile('com.crashlytics.sdk.Android:crashlytics:2.5.2@aar') {
        transitive = true;
    }
}

そして以下は私のトップレベルのbuild.gradleです

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath "com.Android.tools.build:gradle:1.5.0"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

クラスパス「com.Android.tools.build:gradle:1.3.1」に戻すと問題が解決するようですが、すべての新機能の使用を開始したいと思います。

8
Matei Canavra

問題はpngファイルにあります。おそらくあなたの画像はいくつかのpng最適化ツールによって最適化されました。 Android studio use[〜#〜] aapt [〜#〜]ツールを使用して、プロジェクトのビルド中に画像を最適化します。この問題の理由は、[〜#〜] aapt [〜#〜]ツールが画像を前処理したことを認識しないためです。

アプリケーションでこれを回避するには、gradleでオプションを指定する必要があります

  aaptOptions{
    cruncherEnabled = false
}

これは、すべてのpngファイルの無効化[〜#〜] aapt [〜#〜]最適化です。

同様の質問がありました ここ

22

実際、これの理由は、いわゆる.pngファイルのいくつかが実際には[〜#〜] png [〜#〜] sではなく、他のタイプであるためです(ほとんどの場合、それらは[〜#〜] jpeg [〜#〜] sですが、Eclipseを欺くために、他の誰かまたはあなたが.pngファイル拡張子に名前を変更した可能性があります。ただし、覚えておいてくださいAndroid Studioそれよりも賢い:D

チェックを確実にするために、ツールのようなPhotoshopでこのエラーを引き起こしている可能性のあるPNG画像ファイルの1つを開きます(Photoshopファイル拡張子が実際の形式と異なる場合はエラーも発生するため、より良いです。その場合、画像ファイルの実際の形式を確認するには、 このようなwebapp )を使用します。

解決策:
Photoshopでファイルを開いたら、PNGとして保存します。そして、これを構築してみてください。ほとんどの場合、この問題は解消されている可能性があります。

この答えがそこにいる誰かに役立つことを願っています。
乾杯!

1
Randika Vishman

私は簡単な方法で、drawablesフォルダーにある未使用のファイルを削除しました。これで問題は解決したようです。将来的には、Tauqirが提案したように、PNGをdrawablesフォルダーに配置する前に必ずクラッシュさせます。

0
Matei Canavra