我正在尝试在Android studio 2.2中加载一个旧的c项目(用于Android 5.1,API 22)。源代码包括使用android记录器。当我在工作室里建立项目时。该工作室报告了一些错误:
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'
...
我尝试将日志库添加到Gradle脚本
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:(71, 0) Could not get unknown property 'ldLibs' for ProductFlavor_Decorated
。
任何人都知道如何在android studio 2.2中添加日志库?
感谢。
答案 0 :(得分:0)
可能是因为在NDK中实际上并没有android-22。 Android 5.1没有任何新的原生API,因此NDK没有该目录。尝试将app.on('ready', ()=> {
let win = new BrowserWindow({width:800, height:600})
win.loadURL('file://'+__dirname+'/index.html')
win.on('closed', () => {
console.log(' ---- Bye Bye Electron ---- ')
});
})
设置为21?
非常重要的一点是:在使用NDK时,您的目标API级别是您的最低API级别。我相信Gradle并未强制执行此操作,但很可能本机代码无法在目标API级别以下的设备上运行。