0

Android の libs フォルダーに複数のライブラリがあります。「Tapjoy」を追加しようとすると、次のエラーが表示されます。

0 0xffff 65536 にない dex メソッド ID を実行できません android 問題が発生しています

そして、ビルドパスを構成して外部jarを追加しようとすると、

java.lang.NoClassDefFoundError: com.tapjoy.TapjoyConnect

私はこの問題で立ち往生しています。誰でも解決策を教えてもらえますか?

4

1 に答える 1

0

2 つのオプションがある 65K メソッドの制限に達したことをお祝いします。

a) 不要なライブラリを削除するか、ProGuard を使用して、一部のコードをクリーンアップします。

b) Multidex ソリューション、次の手順に従います

  1. Android SDK ビルドと Android サポート リポジトリが最新バージョンに更新されていることを確認してください。
  2. build.gradleサポート dex lib を追加し、multidex を有効にして変更します。

    android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"
    
    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...
    
        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
    }
    
    dependencies {
      compile 'com.android.support:multidex:1.0.0' 
    }
    
  3. マニフェストを変更します。

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
         <application
          ...
          android:name="android.support.multidex.MultiDexApplication">
          ...
         </application>
    </manifest>
    

ps 既に Application を拡張している場合は、 attachBaseContext メソッドをオーバーライドするだけです

    protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

詳細情報: 65,000 以上のメソッドを使用したアプリの構築

于 2014-11-19T08:32:52.250 に答える