我正在使用gradle为我们的java项目构建一个JNI库,它工作正常,但我似乎无法弄清楚如何保持gradle构建文件的共享和静态版本。我想禁用静态库的构建来加速构建过程。添加“共享”标签似乎没有办法解决问题。
从gradle构建文件:
libraries {
bulletjme {
shared
}
}
gradle手册指出“例如,当您定义一个名为helloworld的库并在Linux上构建时,Gradle默认会生成libhelloworld.so和libhelloworld.a二进制文件。”但是它没有说明如何禁用任何二进制文件的构建。
感谢您的回答!
答案 0 :(得分:2)
在Gradle 2.11中,可以通过将buildable属性设置为false来设置。虽然文档说它是只读的,但它确实有效。
model {
components {
libraryA(NativeLibrarySpec)
libraryB(NativeLibrarySpec)
all {
binaries.withType(StaticLibraryBinarySpec) {
buildable = false
}
}
}
}
检查组件输出时,Gradle现在会说用户禁用了库:
lv.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position,
long arg3)
{
//get all the data from list and send to next activity where you can view your data as you want:
Intent i1=new Intent(A.this, B.class);
i1.putExtra("data", lv.get(position).getData());
startActivity(i1);
}
});
这也可以一次全局处理所有库:
String data=getIntent.getStringExtra("data");
答案 1 :(得分:0)
为了防止gradle为&#34; main&#34;构建静态库。组件,您需要在build.gradle中包含以下代码:
model {
components {
main(NativeLibrarySpec) {
sources {
c {
binaries.withType(StaticLibraryBinarySpec) { bin ->
binaries.remove(bin)
}
}
}
}
}
}