2017-02-20 5 views
0

私はAndroid NDKネイティブプロジェクトを持っており、C++コードとJavaコードの両方で同じ定数を使用したいと考えています。 this questionからC++で使用可能なGradleの変数とAndroid NDKでJavaを宣言できますか?

は、私は、@文字列/ APP_NAMEまたはR.string.app_nameで私のJavaコードにアクセスし、その後することができます

android { 
    buildTypes { 
     debug{ resValue "string", "app_name", "My App Name Debug" } 
     release { resValue "string", "app_name", "My App Name" } 
    } 
} 

のようGradleのファイルにAndroidのリソースを宣言することができることを理解します私のネイティブC++コードでこれらの宣言にアクセスするためのメカニズムがあります。これは私のGradleビルドプロセスの一部としてコンパイルされていますか?

答えて

1

C++から直接宣言にアクセスすることはできません。私は別の2つの方法が考えられます。Javaメソッドを使って、それぞれの宣言に対して-Dを指定したLOCAL_CPPFLAGSを使用して、コンパイラに宣言を渡します(それぞれのメソッドまたは配列に対するメソッドです)たとえば、-Dapp_name = "My App Name Debug"(グラブルビルド中に使用可能な変数に直接設定することができます)、そのためにJNIコードを作成する方法を変更する必要があります。

関連する問題