Android 用にコンパイルするために Bazel を使い始めようとしていますが、アプリの UI に問題があります。具体的には、UI を作成しようとすると、Bazel がチョークします。
主なアクティビティは次のようになります。
package org.mamizou.example.test
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
....
public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}
}
したがって、android.developer.comによると、appcompat-v7 を使用したい場合に行うべき正しいことは、android_library ブロックにあり、「//external:android/appcompat_v7」を含めます。涼しい。私の android_library ブロックは次のようになります。
android_library(
name="lib",
deps=[ "//external:android/appcompat_v7", ],
srcs=[ "src/org/mamizou/example/test/ExampleLib.java", ],
)
Ok。次に、bazel build を実行すると、
ERROR: missing input file '@android_sdk//:extras/android/support/v7/appcompat/libs/android-support-v7-appcompat.jar"
Android-sdk ディレクトリに移動して確認すると、android-sdk/extras/android/ m2repository/com/android/support /appcompat-v7 のようなパスがあることに気付きますが、android-sdk/extras のようなパスはありません。 /アンドロイド/サポート
SDK マネージャー ツールを使用して、サポート リポジトリをフラッシュして再インストールしましたが、変更はありません。サポート ファイルはすべて m2repository の下にあります。そして、それらは *.jar ファイルではなく、*.aar ファイルです。*appcompat.jar のような名前のものが見つかりません
だから、ここで何かが間違っています。環境構成に何か問題があったような気がしますが、BUILD の関連するブロックを見たことがあります。私の WORKSPACE は次のようになります。
android_sdk_repository(
name="android_sdk",
path="/home/mamizou/android-sdk",
api_level=23,
build_tools_version="23.0.2",
)
少なくとも私には整形式に見えます(さらに重要なことに、SDKがインストールされている実際の場所を指しています)
- Google の SDK が m2repository の下で *.aar を探す必要があることを示しているように見えるのに、Bazel がサポートで *.jar を探しているのはなぜですか?
- Bazel が関連する appcompat-v7 ファイルを見つけられるようにするには、どのような変更を加える必要がありますか?
fwiw、Bazelビルドラベルは0.2.0-jdk7です