2017-06-30 7 views
0

に失敗する私はプロジェクトにネイティブライブラリを統合すると経験していない、と私は、次のエラー(下記の)ネイティブコードのビルドは、Android Studioの

JniJsEngine.cppおよびその他のcppファイルを取得していた理由を見つけることができませんjniフォルダに存在します。

(エラーの最初の数行が与えられている)

Error:Gradle: 
FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':libadblockplus- 
android:externalNativeBuildRelease'. 
> Build command failed. 
Error while executing process C:\androiddev\android-ndk-r15b\ndk-build.cmd 
with arguments {NDK_PROJECT_PATH=null 
APP_BUILD_SCRIPT=C:\abcd\libadblockplus-android\jni\Android.mk 
NDK_APPLICATION_MK=C:\abcd\libadblockplus-android\jni\Application.mk 
APP_ABI=x86 NDK_ALL_ABIS=x86 NDK_DEBUG=0 APP_PLATFORM=android-9 
NDK_OUT=C:/abcd/libadblockplus-android/build/intermediates/ndkBuild/release/obj 
NDK_LIBS_OUT=C:\abcd\libadblockplus- 
android\build\intermediates\ndkBuild\release\lib 
C:/abcd/libadblockplus- 
android/build/intermediates/ndkBuild/release/obj/local/x86/libadblockplus- 
jni.so} 
Android NDK: android-9 is unsupported. Using minimum supported version 
android-14.  
[x86] SharedLibrary : libadblockplus-jni.so 
C:/abcd/libadblockplus-android/jni/JniJsEngine.cpp:222: error: 
undefined reference to 
'AdblockPlus::JsEngine::NewValue(std::__ndk1::basic_string<char, 
std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)' 
C:/abcd/libadblockplus-android/jni/JniJsEngine.cpp:186: error: 
undefined reference 'AdblockPlus::JsEngine::SetWebRequest(std::__ndk1::shared_ptr<AdblockPlus::WebR 
equest>)' 
C:/abcd/libadblockplus-android/jni/JniJsEngine.cpp:90: error: undefined 
reference to 
'AdblockPlus::JsEngine::Evaluate(std::__ndk1::basic_string<char, 
std::__ndk1::char_traits<char>, 
std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, 
std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)' 
... 
... 
... 
+0

おそらく、あなたのAndroidMk **モジュール** adblockplus-jni **は、** JsEngine **クラスを含む静的ライブラリをリンクしません。プロジェクト構造と** Android.mk **を投稿すると、より簡単に手助けすることができます。 –

答えて

0

最初のエラー - NDK_PROJECT_PATH = nullは - あなたのGradleのプロジェクトのルートを見つけることができませんがわかりますので、それが正常にコンパイルすることはできません。ルートを設定する必要があります。これは、NDK(NDK実験プラグインまたは新しいNDKビルド組み込みサポート)を構築するために使用している方法に依存します。

ほとんどの場合、あなたのgradleファイルにjni.srcDirsを設定する必要があります。ここで見ることができます:Can't build project with android-ndk and Android Studio

+0

'NDK_PROJECT_PATH = null'はエラーではありません。これは、gradleプラグインが最近** ndk-build **を起動する方法です。 –

関連する問題