私はGitHubのプロジェクトを持っています。約2ヶ月間、両方のマシンで正常に動作していました。その後、2週間前、私の家のPCで稼働を停止しましたが、はまだ私の仕事のPCで正常に動作します。Gradle dependencyが原因でエラーが発生しました "無効なマジックナンバー"
:
これは私が取得エラーですアプリ:例外で失敗しましたビルド:shrinkDebugMultiDexComponentsは
FAILUREに失敗しました。
- どうしたのですか。 'app:shrinkDebugMultiDexComponents'タスクの実行に失敗しました。 java.io.IOException:[D:\ dev \ gitRepo \ app \ android \ app \ build \ intermediates \ multi-dex \ debug \ allclasses.jar]を読むことができません(クラス[__MACOSX /ストライプ/アンドロイド/. BuildConfig.class](クラス内のマジックナンバー[51607]が無効です)
- 試してみてください: スタックトレースを取得するには、--stacktraceオプションを指定して実行してください。より多くのログ出力を得るには、--infoまたは--debugオプションを指定して実行します。
私にエラーを与えているstripe
パッケージには、サードパーティのライブラリthat you can find hereです。私はビルド.gradleファイルの依存関係として、彼らの言うとおりにリストします。
compile 'com.stripe:stripe-android:+'
私はstripe
を関連するすべてのコードをコメントアウトしており、アプリは完全に正常に動作するので、私はそれが私がそのパッケージを処理していますどのように何かを持って知っています。
残念ながら、私はこれを止めるために何をしたのか正確には思い出せません。私はこれが起こる前の週がAndroid Studioをアップグレードし、ProGuard
の設定を乱すかなりの時間を費やしたと思う。
- には
ProGuard
変更が行われていないmaster
ブランチで作業:私が試してみました何。
- API 17をインストール、アンインストールし、再インストールのAndroidメーカー
- 再クローニングGitのレポ
- (日食のためのストライプがこれを必要とする。未メーカーが、私はそれに打撃を与えました)。
- ストライプカスタマーサポートに連絡していますが、ヒントはありませんでした。
- This stack overflow post。しかし、このプロジェクトに触れたMacコンピュータはありません。また、私は個人的には
stripe
に関連するものを圧縮していません。 - From hereは、マジックナンバーをHexからASCIIに変換しました。結果は私が認識していないQ`でした。
私はProGuardのために何かしたかもしれないと思いますが、私は理解できません。私は、クリーンなAndroidStudioをインストールし、きれいなリポジトリのクローンを使って、Proguardの仕事とはまったく異なる枝に立っています。私はオフィスにいてもプロジェクトは正常に動作します。
EDIT
私はdebug
BuildTypeでこれを実行しています。これらは私の3階調ファイルです。 1つ目はプロジェクト全体、2つ目はアプリケーションモジュール用、3つ目はローカルアンドロイドライブラリモジュール用です。
プロジェクトbuild.gradle
: buildscript {リポジトリ{ jcenter() 達人{URL 'http://download.crashlytics.com/maven'}} 依存関係{クラスパス 'com.android.tools.build:gradle:1.2.3' クラスパス 'com.crashlytics.tools.gradle:crashlytics-のGradle:1 +' }}
allprojects {
repositories {
jcenter()
maven{ url 'http://download.crashlytics.com/maven' }
}
}
Android用アプリケーションモジュール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'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.app.android"
renderscriptTargetApi 19
renderscriptSupportModeEnabled true
minSdkVersion 16
targetSdkVersion 22
multiDexEnabled = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
buildConfigField 'Boolean', 'enableCrashlytics', 'true'
}
debug {
buildConfigField 'Boolean', 'enableCrashlytics', 'false'
}
adhoc {
debuggable true
signingConfig signingConfigs.debug
buildConfigField 'Boolean', 'enableCrashlytics', 'true'
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
}
dependencies {
compile project(':localLibrary')
compile 'com.facebook.android:facebook-android-sdk:3.21.1'
compile 'commons-io:commons-io:2.4'
compile 'com.github.bumptech.glide:glide:3.6.1'
compile 'com.android.support:support-v4:22.0.1'
compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'
compile 'com.google.android.gms:play-services-maps:8.1.0'
compile 'com.android.support:multidex:1.0.1'
compile 'io.card:android-sdk:5.0.1'
compile 'com.stripe:stripe-android:+'
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') {
transitive = true;
}
}
ローカルのAndroidライブラリモジュールはbuild.gradle
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 16
targetSdkVersion 22
multiDexEnabled = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:22.1.0'
compile 'com.google.code.gson:gson:2.2.2'
compile 'com.android.support:multidex:1.0.0'
compile group: 'org.apache.httpcomponents' , name: 'httpmime' , version: '4.3.5'
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5'
}
無効なマジックナンバーは、Javaバージョンの周りの問題を示してあるべき
JDK Location
に行く – ligi@ligiは、あなたがのJavaバージョンを意味しています私が使っているマシンは? – JuiCe
私は依存関係で '+'を使わないでください - 代わりに 'stripe-android'のフルバージョン番号を指定してください。次に、異なるバージョンを試して問題があるかどうかを確認することができます。 'io.fabric.tools:gradle'でも同じです。 –