2016-10-11 14 views
1

Androidスタジオ2.2に古いCプロジェクト(アンドロイド5.1、API 22用)をロードしようとしています。ソースコードには、Androidロガーの使用が含まれます。私がスタジオでプロジェクトをビルドするとき。 Error:(71, 0) Could not get unknown property 'ldLibs' for ProductFlavor_Decorated:私はGradleのスクリプトエラー: "Androidログがこのスコープで宣言されていませんでした"

productFlavors { 
    fat { 
     dimension "abi" 
     ndk { 
      abiFilters "armeabi", "armeabi-v7a", "x86" 
      versionCode = 0; 
      ldLibs.addAll(["log"]) // <- not working 
     } 
     minSdkVersion 21 
     targetSdkVersion 22 
    } 

    armv7a { 
     dimension "abi" 
     ndk { 
      abiFilter "armeabi" 
      versionCode = 1; 
      ldLibs "log" // <- not working neither 
     } 
     minSdkVersion 21 
     targetSdkVersion 22 
    } 
} 

しかし、スタジオレポートエラーにログライブラリを追加しようとしました

Error:(34, 21) error: '__android_log' was not declared in this scope 
Information:(84, 5) in expansion of macro 'LOGD' 
Warning:(35, 79) warning: format '%s' expects argument of type 'char*', but argument 10 has type 'void*' [-Wformat=] 
Information:(91, 9) in expansion of macro 'LOGI' 
Error:(34, 35) error: expected ';' before '_print' 
Information:(102, 5) in expansion of macro 'LOGD' 
Error:(34, 21) error: '__android_log' was not declared in this scope 
Information:(107, 5) in expansion of macro 'LOGD' 
... 

:スタジオにはいくつかのエラーを報告します。

誰もがアンドロイドスタジオ2.2でログライブラリを追加する方法を知っていますか?

ありがとうございました。

答えて

0

実際にNDKにアンドロイド22がないためかもしれません。 Android 5.1には新しいネイティブAPIがないため、NDKにはディレクトリがありません。 targetSdkVersionを21に設定してみますか?

重要な点:NDKを使用する場合、ターゲットAPIレベルは最小APIレベルです。私はGradleがこれを強制しないと信じていますが、ネイティブコードはターゲットAPIレベル以下のデバイスでは動作しない可能性が非常に高いです。

+0

返信いただきありがとうございます。 targetSdkVersionを21に変更しようとしましたが、同じビルドエラーが発生しています。私はまた、ndk-bundle/platforms/android-22//libにliblog.soがあることを確認しました。だから私は問題がGradleが設定するように行方不明に起因していなければならないと思う。 – r0ng

関連する問題