2017-11-01 15 views
1

新しいアンドロイドのgradleプラグインでAndroidスタジオ3.0.0にアップデートされました。 buildinプロジェクトがメッセージを持っている間 :アンドロイドスタジオが更新され、Gstreamerビルドで失敗しました

What went wrong: 
Execution failed for task `':app:externalNativeBuildDebug'`. 

Expected output file at `gst-build-arm64-v8a/libgstreamer_android.so` for target `gstreamer_android` but there was none 

しかしlibgstreamer_android.soライブラリファイルがすでに存在しています。ネイティブコードの場合は、ndk-buildを使用します。誰にもこの問題がありますか?

+0

私はまったく同じ問題を抱えていますが、私はそれを理解しようとしています...私は既に4.1の代わりにgradle 4.3を使用しようとしました、クリーンで、再構築し、プロジェクトを再リンクします...より良い解決策が見つからないうちにアンドロイドプラグイン3.0をダウングレードしてみてください。 –

+0

@EduardoFernando、私の答えを見てください。 – Valery

答えて

3

アンドロイドモジュールのフィールドターゲットのbuild.gradleファイルに追加します。

android { 
    defaultConfig { 
    externalNativeBuild { 
     ndkBuild { 
     targets "name_of_native_module_in_android_mk_file" 
     } 
    ... 
} 

gstreamer_androidを加えないでください。

+0

私はいくつかの質問をしています...まずは:(build.grade Module:app)rigth? 2番目:私のexternalNativeBuild {}はdefaultConfig {}内にありません... android {} ...アンドロイド{}から削除してアンドロイド{defaultConfig {}}に入れますか? 3番目:externalNativeBuild {ndkBuild {}}内部に "src/main/jni/Android.mk"のパスがあります。 "ターゲットを指定してコマンドを追加するだけですか? Forth: "name_of_native_module_in_android_mk_file"とはどこですか?それは "LOCAL_MODULE"変数にありますか? –

+1

@EduardoFernando、1. gstreamerを使用したモデルです。 2.アプリケーション内のexternalNativeBuildはAndroid.mkファイルへのパスを保持し、externalNativeBuildはデフォルトの設定でターゲット(ネイティブモジュール)とabiフィルタを記述しました。私はそれが助けてくれることを願う君は – Valery

0

UPDATE:ヴァレリーの答え作品!

廃止答え:
完璧修正ではありません、私が問題に深く見てみる時間を持ってまで、それだけで一時的です。
はあなたのGradleプラグインをダウングレード: - :で

  • 3.3
    1. ファイル "のGradleのバージョン" フィールドプットでは "プロジェクト"
    2. で>プロジェクト構造
    3. クリック「Androidプラグインのバージョン」フィールドは、次のとおりです。
      • 2.3.3
    4. ヒット "OK"

    Androidのメーカーはただドン」、再び更新のGradleプラグインを求めwindownを促すことができる...など、プロジェクトを同期、メッセージを受け入れますtは...
    は、私は多分Android.mkに何かを変更したり、build.grade上の他のいくつかのパラメータする必要がありますが、作られて構築する方法を変更しGradleの上の更新を推測...今の
    にそれを受け入れる

    編集:私はいくつかのcluを見つけたAT E:https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html

    APIは
    Androidのプラグイン3.0.0がが 特定の機能を削除し、既存のを構築破ることがAPIの変更が導入されて変更されます。後で プラグインのバージョンでは、無効な機能である を置き換える新しい公開APIが導入される可能性があります。ビルド時に

    変更バリアント出力は、新しいプラグインで破壊されたバリアントの出力を操作するためのバリアント APIを使用してをすることができません。それ 以下に示すように、まだ、そのよう ビルド時にAPK名の変更などの単純なタスクのために動作します...

    だから、私たちは一時的な修正(のGradleの更新されていないバージョン)を使用しておく必要がありますね...

  • +0

    私は、 'app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/*。so'にある* .soファイルを見つけましたが、プロジェクトをビルドする際にそれらを使用する方法を知らない – Valery