2

私はEclipseでプロジェクトに取り組んでいますが、しばらくすると次のようなエラーが発生します"Unable to execute dex: method ID not in" as single DEX file having 65k method limitations.

問題を解決するために、私はAndroid StudioGradle plugin v0.14.0 for Android adds support for Multi-Dex.に移行しました。

Eclipse からの移行に従って、SDK を更新し、プロジェクトを Eclipse からエクスポートしました。

これで、Android Studio で必要なプロジェクト構造ができました。プロジェクトは、ABS、Google Play サービス ライブラリ、Android マルチデックス サポート ライブラリに依存しています。これらのライブラリを「libraries」という名前のプロジェクト フォルダに追加しました。

Project Gradle ファイルは以下のようになります。

buildscript {
repositories {
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:0.14.1'
}
}

apply plugin: 'com.android.application'

dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':libraries:ABS')
compile project(':libraries:GooglePlayServiceLib')


compile (project(':libraries:android-support-multidex')) {
    exclude group: 'com.android.support', module: 'support-v4'
}


  compile "com.android.support:support-v4:21.0.0"


}


android {
compileSdkVersion 19
buildToolsVersion "20.0.0"

dexOptions {
    preDexLibraries = false


   }


sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }


    instrumentTest.setRoot('tests')


    debug.setRoot('build-types/debug')
    release.setRoot('build-types/release')

    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
    }

}


}

afterEvaluate {
tasks.matching {
    it.name.startsWith('dex')
}.each { dx ->
    if (dx.additionalParameters == null) {
        dx.additionalParameters = ['--multi-dex']
    } else {
        dx.additionalParameters += '--multi-dex'
    }
}
}

プロジェクトをクリーンアップしてビルドすると、正常にビルドされます。しかし、プロジェクトをAndroidアプリケーションとして実行すると、次のエラーが発生します:

java.lang.RuntimeException: Unable to instantiate application java.lang.ClassNotFoundException: Didn't find class on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.example-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example-2, /vendor/lib, /system/lib]]

アプリケーションが AndroidManifest.xml をコンパイルしていないと思いますか、それとも何か不足していますか? どんな助けでも大歓迎です。:)

4

0 に答える 0