Ошибка libpng: не файл PNG
Я несколько раз пытался обновить инструменты сборки Android Studio до версии 1.3.1, но всегда сталкиваюсь с этой ошибкой libpng. Я решил одну из ошибок, полностью удалив maven-зависимость (поскольку консоль 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 (Модуль: приложение)
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", кажется, решает проблему, но я хотел бы начать использовать все новые функции
3 ответа
Проблема в ваших png файлах. Возможно, ваши изображения были оптимизированы с помощью некоторых инструментов оптимизации png. Студия Android использует инструмент AAPT для оптимизации изображений при создании проекта. Причиной этой проблемы является то, что инструмент AAPT не знает, что вы предварительно обработали изображение.
Чтобы обойти это в вашем приложении, вам нужно указать опцию в Gradle
aaptOptions{
cruncherEnabled = false
}
Это отключение оптимизации AAPT для всех ваших файлов PNG.
Подобный вопрос был задан здесь
На самом деле причиной этого являются ваши некоторые из так называемых .png
файлы на самом деле не PNG, а другого типа (в основном я подозреваю, что это JPEG, но кто-то другой или, может быть, вы переименовали их с помощью .png
Расширение файла просто чтобы обмануть Eclipse. Но помните, Android Studio умнее, чем это : D)
Чтобы быть уверенным в проверке, откройте один из файлов изображений PNG, которые могут вызывать эту ошибку в инструменте, подобном Photoshop (лучше использовать Photoshop, потому что, если расширение файла отличается от фактического формата, оно также выдаст ошибку. Если так чтобы узнать, какой формат у вашего файла изображения, используйте веб-приложение, как это).
Решение:
После того, как вы откроете свой файл в Photoshop, сохраните его как PNG. И попробуйте построить это, и в основном эта проблема могла исчезнуть.
Надеюсь, что этот ответ был полезным для кого-то там.
Ура!
Я выбрал короткий путь и просто удалил все неиспользуемые файлы, которые у меня были в папке drawables. Это, кажется, решило проблему. В будущем я обязательно разбью любые PNG перед тем, как помещать их в папку drawables, как предложил Таукир.