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 ライブラリと組み合わせて使用できるようにすることです。