Android Studio を使用してアプリをビルドするときにこのエラーが発生します。APK はコンパイルされていますが、Android P エミュレーターでアプリを実行しようとするとクラッシュし、次のエラーが発生します。詳細については、添付ファイルを参照してください。
java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/ProtocolVersion
これは私の build.grade ファイルです。問題の原因について何かアドバイスがあれば、ぜひ教えてください。よろしくお願いします。
android {
compileSdkVersion 'android-P'
buildToolsVersion '28-rc1'
useLibrary 'org.apache.http.legacy'
//for Lambda
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
defaultConfig {
applicationId "xxx.xxx.xxx"
minSdkVersion 17
targetSdkVersion 27
versionCode xxxx
versionName "Vx.x.x"
multiDexEnabled true
//other setting required
ndk {
abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a', 'x86', 'x86_64', 'mips', 'mips64'
}
ベストアンサー1
更新: これはバグや回避策ではなくなりました。アプリがAPIレベル28(Android 9.0)以上を対象とし、Android 16.0.0以下のGoogle Maps SDKを使用している場合(またはアプリがApache HTTP Legacyライブラリを使用している場合)に必要です。これは現在、公式ドキュメント公的な問題は閉まっている意図した動作です。
これはバグAndroidManifest.xml
Google Play Services 側では、問題が修正されるまで、タグ内に以下を追加することで回避できるはずです<application>
:
<uses-library android:name="org.apache.http.legacy" android:required="false" />