2017-06-19 19 views
2

私はGitHubからTelegramメッセンジャーソースをダウンロードしました。これをAndroidスタジオで初めて実行しようとしています。今エラーは以下の通りです:Android用テレグラム、混乱NDKエラー

ビルド失敗したメッセージは次のとおりです。

Error:error: CreateProcess: No such file or directory

のGradle Consoleの詳細なログは次のとおりです。

FAILURE: Build failed with an exception.

  • What went wrong:

    Execution failed for task ':TMessagesProj:externalNativeBuildArmv7Debug'.

Build command failed. Error while executing process D:\AndroidStudio\sdk\ndk-bundle\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\TMessagesProj\jni\Android.mk NDK_APPLICATION_MK=C:\TMessagesProj\jni\Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-14 NDK_OUT=C:/TMessagesProj/build/intermediates/ndkBuild/armv7/debug/obj NDK_LIBS_OUT=C:\TMessagesProj\build\intermediates\ndkBuild\armv7\debug\lib NDK_APPLICATION_MK:=jni/Application.mk APP_PLATFORM:=android-14 C:/TMessagesProj/build/intermediates/ndkBuild/armv7/debug/obj/local/armeabi-v7a/libtmessages.26.so}
[armeabi-v7a] SharedLibrary : libtmessages.26.so
arm-linux-androideabi-g++: error: CreateProcess: No such file or directory
make: ***
[C:/TMessagesProj/build/intermediates/ndkBuild/armv7/debug/obj/local/armeabi-v7a/libtmessages.26.so] Error 1

私がログに対処ディレクトリをチェックすると、私はlibtmessages.26.soという名前のファイルが見つかりません。私は何が間違っているのか分からない。私はC++やGCCについてよく知らないので、詳細なヘルプに感謝します。

このエラーが発生する前は、「構造体の再定義」エラーがありました。焦点を合わせると、2つのlink.hファイルに2つのクラスが繰り返し定義されていることが分かりました。もう1つはプロジェクトに、もう1つはsdk \ ndk-bundleディレクトリにあります。だから私はsdkでlink.hの競合をコメントし、私は上記のエラーに直面した。しかし、私はこれらの部分のコメントを外したときに奇妙なことでしたが、私は再定義のエラーを再度見ることを期待しましたが、驚くべきことに何も変わっていませんでした。

とにかく、どんな助けもありがとうございます。前もって感謝します。

+0

どのバージョンのNDKをお使いですか?コマンドラインから** ndk-build **を実行してみてください: 'C:\ TMessagesProj'に行き、' D:\ AndroidStudio \ sdk \ ndk-bundle \ ndk-build.cmdを実行してください。APP_ABI = armeabi-v7a APP_PLATFORM = android-14 ' –

+0

最新バージョンのNDKです。これは15回目のリビジョン(r-15)です。 – saraX

+0

明示的に' ANDROID_DEPRECATED_HEADERS = true'を設定してください。あなたのコマンドラインビルドは何を言っていますか? –

答えて

0

JNIフォルダにあるAndroid.mkファイルの最初に次の行を追加します。

LOCAL_SHORT_COMMANDS := true 

さらに、JNIフォルダにあるApplication.mkファイルの最初に次の行を追加します。

APP_SHORT_COMMANDS := true 

これはあなたの問題を解決していない可能性があり、あなたはまだ多少の誤差がある場合は、ビルドプロセスでMULTIDEXを使用するようにしてください。それを有効にする方法については、多くのチュートリアルがあります。