最近、Android studioをアップグレードした後、プロジェクトをビルドできなくなりました。
ビルドを実行するたびに、次のエラーが発生します。
error: resource drawable/splash_screen (aka com.whereisthemonkey.nowalism:drawable/splash_screen) not found.
Message{kind=ERROR, text=error: resource drawable/splash_screen (aka com.whereisthemonkey.nowalism:drawable/splash_screen) not found., sources=[C:\Users\Lucas\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\cf575568f869a44c685b16e47de83a28\res\values\values.xml:1632:5-84], original message=, tool name=Optional.of(AAPT)}
ファイルsplash_screen.xmlがdrawableフォルダーの下に存在していても、このエラーは続きます。
プロジェクトの再構築、クリーニング、およびキャッシュの無効化は機能しませんでした!
行Android.enableAapt2 = falseを追加しても、実際の問題は解決されないため、問題の根本を見つけたいと思います。
以下は私のgradle.buildファイルを示しています:
apply plugin: 'com.Android.application'
apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-Android-extensions'
apply plugin: 'kotlin-kapt'//https://github.com/bumptech/glide/issues/1939
Android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "com.whereisthemonkey.nowalism"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
// Keep the following configuration in order to target Java 8.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
res.srcDirs += [
'src/main/res-backgrounds',
'src/main/res-jobs',
]
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.Android.support:appcompat-v7:27.1.1'
implementation 'com.Android.support:cardview-v7:27.1.1'
implementation 'com.Android.support:recyclerview-v7:27.1.1'
implementation 'com.Android.support:design:27.1.1'
implementation 'com.Android.support.constraint:constraint-layout:1.1.0'
//Do not update due to dex error
implementation 'org.Apache.commons:commons-lang3:3.6'
//Do not update due to dex error
implementation 'com.google.firebase:firebase-auth:11.8.0'
implementation 'com.google.firebase:firebase-messaging:11.8.0'
implementation 'com.google.Android.gms:play-services:11.8.0'
implementation 'com.aurelhubert:ahbottomnavigation:2.1.0'
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'
implementation 'com.afollestad.material-dialogs:commons:0.9.6.0'
implementation 'com.amitshekhar.Android:android-networking:1.0.1'
implementation 'org.Apache.directory.studio:org.Apache.commons.io:2.4'
implementation 'com.github.ome450901:SimpleRatingBar:1.4.1'
implementation 'com.sothree.slidinguppanel:library:3.4.0'
implementation 'com.github.esafirm.Android-image-picker:imagepicker:1.12.0'
//Do not update due to dex error
implementation 'com.theartofdev.edmodo:Android-image-cropper:2.5.1'
implementation 'com.github.bumptech.glide:glide:4.6.1'
kapt 'com.github.bumptech.glide:compiler:4.6.1'//https://github.com/bumptech/glide/issues/1939
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'de.hdodenhof:circleimageview:2.2.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.1'
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.firebaseui:firebase-ui-auth:3.2.1'
implementation 'com.Android.support:support-v4:27.1.1'
}
apply plugin: 'com.google.gms.google-services'
どんな助けも親切に感謝します。
おそらく、不正な形式のコピーされたxmlファイルに起因するエラーを修正しました(おそらく行末の混乱)
これらを書き換えるとエラーが修正されましたが、Android Studioは問題の原因として別のファイルを表示しましたが、実際にはエラー自体とは何の関係もありませんでした
私の場合、それはxmlセレクターでした。最初の行には、次の2つがありました(ファイル間で貼り付けをコピーしていただきありがとうございます)。
<?xml version="1.0" encoding="utf-8"?>
and Android Studioは警告などを出しませんでした。削除すると問題は解決しましたが、その後は完全にクリーンなビルドが必要でした。
それぞれのXMLを確認してください。次の状況が見つかるかもしれません。
他のプロジェクトのコードやファイルをコピーしているときに、ドローアブルや文字列などのリソースを追加するのを忘れているかもしれません。
各描画可能ファイルを確認してください。Android Studioは、そのファイルを開くとハイライト表示されます。
Android Studioでエラーが発生したため、このタイプのエラーを見つける必要があります。
私の場合、このファイルを実際に削除したのは「reverted commit」の一部である不正なsplash_screen.xmlでしたが、どういうわけかアクティブなチェンジリストにあった可能性があります。
そのファイルを修正し、問題を解決しました。
私の場合、それはbuild.gradleで設定されたminSdkVersionであるため、より高いAPIバージョンを必要とする描画可能なリソースファイルでした。主な問題は、ファイルを開くまでファイルにエラーが表示されないことでした。そのため、ファイルを見つけるのは困難でした。プロジェクトをビルドする際のエラーとして、まったく問題のない他の描画可能なリソースファイルが表示されたため、少なくとも4時間は他のことを試してみました。より高いAPIを必要とするドロウアブルを削除した後、アプリは正常にビルドされました。
私の場合、xmlns:Android = "http://schemas.Android.com/apk/res/Android"のような名前空間宣言の重複を削除し、Analyzeを使用して、コードツールを調べてログにエラーを表示し、解決します。 drawableリソース内の他のファイルxmlのエラー。
私は健全な問題を抱えており、24pにドローアブルファイルにアイコンを追加するときにそれをソールドします。 .............................................. .... .................................................. ........................必要なアイコンをコピーして、作成可能な描画可能ファイルに貼り付けますデフォルトでは24dpアイコン