1

multidex サポートを使用する必要があるため、ビルド ツール 21.1+ を使用して Android アプリをコンパイルしたいと考えています。SDK マネージャーからビルド ツール 21.1.2 をインストールしました。その後、buildToolsVersion を含めるようにすべての build.gradle ファイルを変更しました。

    android {
      ...
      buildToolsVersion "21.1.2"
      ...
    }

アプリは他のいくつかのプロジェクトに依存しているため、バージョンとパラメーターが異なるいくつかの build.gradle ファイルがあります。

また、マルチデックスに必要なその他の変更も行いました。multidex が必要なアプリでは、build.gradle を次のように変更しました。

android {
  ...
  compileSdkVersion 21
  buildToolsVersion "21.1.2"

  defaultConfig {
    minSdkVersion 21
    targetSdkVersion 21

    // Enabling multidex support.
    multiDexEnabled true
  }
  ...
}

もちろん、マニフェストをに変更しました。

問題は、すべての build.gradle の変更にもかかわらず、プロジェクトが 19.1.0 ビルド ツールでコンパイルされているように見えることです。それらを削除すると、次のエラーが発生するためです。

> failed to find Build Tools revision 19.1.0

ビルド ツール 19 をインストールすると、プロジェクトのコンパイル プロセスがさらに進みますが、コンパイル パラメータによっては、あらゆる種類の奇妙なエラーが発生します。私が設定した場合:

    minSdkVersion 15
    targetSdkVersion 21

プロジェクトは、dex プロセス中に奇妙なエラーでコンパイルに失敗します。しかし、両方を v 21 に設定すると、build.gradle で明示的に要求したビルド ツール 21.0+ が必要であると表示されるため、プロジェクトはコンパイルに失敗します。

プロジェクトはもともとそのように開発されたので、Android Studio の組み込みの gradle ではなく、gradle ラッパー (gradlew) を使用しています。

以下はバグの技術的な部分とは関係ありませんが、そのコンテキストを理解するのに役立つかもしれません: ros-android (android_core) ライブラリをコンパイルしようとしていますが、すべてを最新のものに更新しています: gradle 2.3 、android プラグイン 1.1.0、ビルド ツール 21.1.2、Google API 21、android studio 1.1.0。アイデアは、最新の Google API を ros-android ライブラリと組み合わせて使用​​できるようにすることです。

4

1 に答える 1