2017-03-14 8 views
0

私はAndroidスタジオの新機能です。私は.cc.hのファイルを持つC++プロジェクトをビルドしました。しかし、私はAndroid Studio 2.2によって開発されるアプリでそれらを実行したいです。 CMakeLists.txtの書き方については、Add C and C++ Code to Your Projectのようなチュートリアルを検索しました。私のC++プロジェクト(JNI)から関数を呼び出すためにアンドロイドスタジオにCMakeListsを書く方法

そして、これは私のCMakeLists.txtです:

cmake_minimum_required(VERSION 3.4.1) 

INCLUDE_DIRECTORIES(src/main/include/) 

add_library(
      native-lib 
      SHARED 
      src/main/cpp/native-lib.cpp 
      ) 
add_library(
      UnitTest 
      STATIC 
      src/main/cpp/UnitTest.cc 
      ) 
add_library(
      CaffeEva 
      STATIC 
      src/main/cpp/CaffeEva.cc 
      ) 
add_library(
      CaffeEvaWrapper 
      STATIC 
      src/main/cpp/CaffeEvaWrapper.cc 
      ) 
add_library(
      BmpImgIO 
      STATIC 
      src/main/cpp/BmpImgIO.cc 
      ) 
add_library(
      BlasWrapper 
      STATIC 
      src/main/cpp/BlasWrapper.cc 
      ) 
add_library(
      CaffePara 
      STATIC 
      src/main/cpp/CaffePara.cc 
      ) 

find_library( 
       log-lib 

       log) 

target_link_libraries( 
         native-lib 
         UnitTest 
         CaffeEva 
         CaffeEvaWrapper 
         BmpImgIO 
         BlasWrapper 
         CaffePara 
         ${log-lib}) 

私のソース.ccファイルと.hファイルをコンパイルします。

私の目的は、UnitTest.ccに関連する機能UnitTest::UT_CaffeEvaWrapper();をJNIで呼び出して、その結果を自分のAndroid携帯に保存することです。

私はそれに自分のファイルを追加するなどのいくつかの変更をGoogleが提供するデモHellpJNIを使用していても、それがエラーを示しています

Unfortunately, Q_CNN has stopped. 

しかし、ビルドがエラーなしでOKであることを確認してください。私はそれを作る方法を知らない。それで私を助けることができる人は誰ですか?指定したチュートリアルもOKです。前もって感謝します!私はそれがこのproblem.Myファイルフォルダを引き起こし、間違ったファイルのディレクトリパスだということを見つけるstep.Andで私のプログラムステップをデバッグしまし

答えて

0

は次のとおりです。

のconstのstd ::文字列kClsNameFilePath =「/ホーム/ ZZ /AndroidStudioProjects/Q_CNN/app/src/main/assets/Cls.Names/class_names.txt "; const std :: string kImgLablFilePath = "/home/zz/AndroidStudioProjects/Q_CNN/app/src/main/assets/Cls.Names/image_labels.txt"; const std :: string kBmpFilePath = "/home/zz/AndroidStudioProjects/Q_CNN/app/src/main/assets/Bmp.Files/ILSVRC2012_val_00000009.BMP";

が、私はデバッグするとき、私はその

FILE * INFILE =のfopen(filePath.c_str()、 "R")を見つけます。

ポインタinFileがnullです。これを解決する方法がわかりません。

最後に、私のファイルを私の電話の下に置いて解決しました!そして、あなたのsdcardを訪問することです!また、AndroidManifest.xmlの行を追加することによって権限を開く必要があります

関連する問題