融合位置情報サービスを追加したいのですが、エラーが表示されます。助けて。
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 26
buildToolsVersion "27.0.1"
defaultConfig {
applicationId "com.example.adil.bloodbankapplication"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:appcompat-v7:26.1.0'
compile 'com.Android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.firebase:firebase-auth:11.8.0'
compile 'com.google.firebase:firebase-database:11.8.0'
compile 'com.Android.support:support-v4:26.1.0'
compile 'junit:junit:4.12'
compile 'com.Android.support:design:26.1.0'
compile 'com.github.joielechong:countrycodepicker:2.1.5'
compile 'com.jaredrummler:material-spinner:1.2.4'
compile 'hanks.xyz:htextview-library:0.1.5'
compile 'com.firebaseui:firebase-ui-database:1.2.0'
compile 'com.google.Android.gms:play-services:11.8.0'
}
apply plugin: 'com.google.gms.google-services'
彼らがあなたに与えた答えのどれもが網羅的ではありませんでした。問題はMultidexにあります。あなたはアプリgradleにライブラリを追加しなければなりません:
implementation 'com.Android.support:multidex:1.0.3'
その後、アプリgradleのdefaultConfigを追加します。
multiDexEnabled true
あなたのアプリケーションはMultidex型でなければなりません..あなたはそれをマニフェストに書かなければなりません:
Android:name=".MyApplication"
"MyApplication"はMultidexクラスであるか、それを拡張する必要があります。
私は以下の解決策で私の問題を修正しました:
実装 'com.Android.support:multidex:1.0.3'
multiDexEnabled true
アプリまたはモジュールのbuild.gradle
を修正する
Android {
defaultConfig {
...
minSdkVersion 21 <----- *here
targetSdkVersion 26
multiDexEnabled true <------ *here
}
...
}
公式文書によると
Android 5.0以降のマルチインデックスサポート
Android 5.0(APIレベル21)以降では、ARTと呼ばれるランタイムを使用します。これは、APKファイルからの複数のDEXファイルのロードをネイティブでサポートしています。 ARTはアプリのインストール時にプリコンパイルを実行します。これは、classesN.dexファイルをスキャンし、それらをAndroidデバイスで実行するための単一の.oatファイルにコンパイルします。したがって、minSdkVersionが21以上の場合は、マルチインデックスサポートライブラリは必要ありません
Android 5.0ランタイムの詳細については、ARTとDalvikを読んでください。
これ に従うことができます。
Android 5.0(APIレベル21)より前のバージョンのプラットフォームは、アプリコードの実行にDalvikランタイムを使用します。デフォルトでは、DalvikはアプリをAPKごとに単一のclasses.dexバイトコードファイルに制限します。この制限を回避するために、マルチデックスサポートライブラリをプロジェクトに追加することができます。
dependencies {
implementation 'com.Android.support:multidex:1.0.3'
}
MinSdkVersionが21以上に設定されている場合は、次に示すように、モジュールレベルのbuild.gradleファイルでmultiDexEnabledをtrueに設定するだけです。
Android {
defaultConfig {
...
minSdkVersion 21
targetSdkVersion 28
multiDexEnabled true
}
...
}
こんにちは問題はここにそれを削除します
compile 'com.google.Android.gms:play-services:11.8.0'
どうして?
注: 結合プレイサービスターゲットを使用しないでください。それはあなたのアプリケーションを膨らませ、たくさんのライブラリをもたらします。代わりに、アプリが使用する特定のGoogle PlayサービスAPIのみを指定してください。
そしてあなたが必要とするものを使用してください。 https://developers.google.com/Android/guides/setup
位置情報サービスのように
com.google.Android.gms:play-services-location:11.8.0
クラウドメッセージングの場合
com.google.Android.gms:play-services-gcm:11.8.0
DEBUG APK を構築している場合は、以下を追加してください。
debug {
multiDexEnabled true
}
buildTypes
の中
RELEASE APK を構築している場合は、リリースブロックにmultiDexEnabled true
を追加します。
release {
...
multiDexEnabled true
...
}
Gradleビルドファイルに依存関係を追加します。
implementation 'com.Android.support:multidex:1.0.2'
または
implementation 'com.Android.support:multidex:1.0.3'
または
implementation 'com.Android.support:multidex:2.0.0'
そして、 "defaultConfig"セクションに、以下を追加します。
multiDexEnabled true
TargetSdkVersionの下
minSdkVersion 17
targetSdkVersion 27
multiDexEnabled true
このエラーが発生した場合
エラー:解決に失敗しました:multidex-instrumentation Open File
あなたは3.0.1にあなたのgradleを変える必要があります
classpath 'com.Android.tools.build:gradle:3.0.1'
そして、次のコードをファイルgradle-wrapper.propertiesに入れてください。
distributionUrl = https://services.gradle.org/distributions/gradle-4.1-all.Zip
最後に
プロジェクトにApplitionクラスを追加し、MultiDexApplicationから拡張されたAndroidManifestにそれを導入します。
public class App extends MultiDexApplication {
@Override
public void onCreate( ) {
super.onCreate( );
}
}
最初にプロジェクトを実行してエラーを作成し、次にプロジェクトを消去します
最後に、プロジェクトを再起動して楽しんでください。
メソッドの数が多すぎます。 Androidのdexファイルには65536メソッドの制限があります。
初心者のために、もしあなたがすべてのグーグルプレイサービスAPIとただ場所を必要としないならば、取り替えなさい
compile 'com.google.Android.gms:play-services:11.8.0'
と
compile 'com.google.Android.gms:play-services-location:11.8.0'
あなたはそれを避ける方法について、またはもっと許可する必要があるならこのページを参照することができます: https://developer.Android.com/studio/build/multidex.html
ProguardでminifyEnabledを使用している場合、マルチデックスを有効にする必要はないでしょう。 MGデベロッパーには、可能であればマルチデックスを避けるようにすべきだということに同意します。私の解決策は、デバッグビルドに対してのみマルチデックスを有効にすることでした。 minifyEnabledはリリースビルドの問題を解決します
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
debug {
// getting error: Cannot fit requested classes in a single dex file. # methods: 65537 > 65536
// https://developer.Android.com/studio/build/multidex
// minifyEnabled true (used with release) will fix this by getting rid of unused method calls, but this will hide debugging info on crash
multiDexEnabled true
}
}
File> Project Structure> App> FlavorsでMinimum SDK Versionを21に設定するだけで済みました。
私はなぜかわからない、おそらくそれは私がKotlinで開発したためであるが、このエラーを修正するために私はついにこのようにMultiDexApplication
を拡張するクラスを作成しなければならない:
class MyApplication : MultiDexApplication() {
}
そして私のManifest.xml
で私は設定しなければなりません
<application
...
Android:name=".MyApplication">
混同しないように、私もします。
multiDexEnabled true
implementation 'com.Android.support:multidex:1.0.3'
androidxの場合、これも私のために働く:
implementation 'androidx.multidex:multidex:2.0.0'
...
<application Android:name="Android.support.multidex.MultiDexApplication">
私のために働かない
multiDexEnabled true
あなたのアプリdefaultConfig {}にこれを追加してみてください。これは私が問題を解決するのに役立ちます
次のようにしてください。
build.gradle
(module:app)
Android {
....
multiDexEnabled 'true' <== Enter code here
}
そして
dependencies {
implementation 'com.Android.support:multidex:1.0.3'
}
私は二度このエラーに遭遇しましたそしてこれに対する解決策はです;ターゲットSDKが20以上の場合は、アプリのグラドルファイルを確認し、defaultconfig { multiDexEnabled true }
に1行追加します。
そうでない場合、あなたのtargetSDKが20未満であれば、あなたのdefaultConfigにその行を追加し、また依存関係を追加する
implementation 'com.Android.support:multidex:1.0.3'.
詳しくはこのリンクをチェックしてください。
https://developer.Android.com/studio/build/multidex#mdex-gradle
Multidexサポートの使用は最後の手段です。デフォルトでは、gradleビルドはAPKの推移的な依存関係を大量に収集します。 Google Developers Docs で推奨されているように、まずプロジェクトから不要な依存関係を削除しようとします。
コマンドラインを使用して、Android Projects Rootに移動します。次のようにして、コンパイルの依存関係ツリーを取得できます。
gradlew app:dependencies --configuration debugCompileClasspath
依存関係ツリーの完全なリストを取得できます
gradlew app:dependencies
次に、アプリのbuild.gradleから不要なまたは推移的な依存関係を削除します。たとえば、アプリで「com.google.api-client」という依存関係を使用している場合は、不要なライブラリ/モジュールを除外できます。
implementation ('com.google.api-client:google-api-client-Android:1.28.0'){
exclude group: 'org.Apache.httpcomponents'
exclude group: 'com.google.guava'
exclude group: 'com.fasterxml.jackson.core'
}
次に、Android Studioで[ビルド]> [APKの分析...]を選択します。リリース/デバッグAPKファイルを選択して内容を表示します。これにより、メソッドと参照カウントが次のようになります。
フラッタープロジェクトの場合は、この問題も解決できます
\ Android\app\build.gradleを開きます
次のものが必要です。
Android {
defaultConfig {
...
minSdkVersion 16
targetSdkVersion 28
}
}
MinSdkVersionが21以上に設定されている場合は、defaultConfigでmultiDexEnabledをtrueに設定するだけです。このような
Android {
defaultConfig {
...
minSdkVersion 16
targetSdkVersion 28
multiDexEnabled true
}
}
minSdkVersionが20以下に設定されている場合、defaultConfigにmultiDexEnabled trueを追加します
そして実装を定義する
dependencies {
implementation 'com.Android.support:multidex:1.0.3'
}
最後に次のものが必要です。
Android {
defaultConfig {
...
minSdkVersion 16
targetSdkVersion 28
multiDexEnabled true // added this
}
}
dependencies {
implementation 'com.Android.support:multidex:1.0.3'
}
詳細については、これをお読みください: https://developer.Android.com/studio/build/multidex
ビルド中:app
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 28
defaultConfig {
applicationId "com.proyecto.marketdillo"
minSdkVersion 14
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:28.0.0-rc02'
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
implementation 'com.Android.support:support-v4:28.0.0-rc02'
implementation 'com.Android.support:design:28.0.0-rc02'
implementation 'com.google.firebase:firebase-auth:16.1.0'
implementation 'com.squareup.picasso:picasso:2.5.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.2'
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.firebase:firebase-firestore:17.1.5'
implementation 'com.Android.support:multidex:1.0.3'
}
apply plugin: 'com.google.gms.google-services'
Android {
compileSdkVersion 28
defaultConfig {
applicationId "com.dev.khamsat"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "2.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}