我正在尝试开发一个简单的Android应用程序,我正在尝试使用sqlcipher,它在内部使用.so库.我已经阅读了有关如何在Android应用程序中使用sqlcipher的文档.我已按照步骤进行编译,没有任何错误.但是,在运行时它会抛出UnsatisfiedLinkError.
谷歌搜索它,我发现,gradle不支持.so库,但我在这里发现了一个我正在尝试使用的黑客.但它会在gist的第40行抛出编译时错误,
tasks.withType(com.android.build.gradle.PackageApplicationTask) { pkgTask ->
pkgTask.jniDir new File(buildDir, 'native-libs')
}
Run Code Online (Sandbox Code Playgroud)
话
无法在Project'MyProject'上找到属性'com'
我在这里发布build.gradle文件中的代码.
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
compile files('libs/commons-codec.jar')
compile files('libs/guava-r09.jar')
compile files('libs/sqlcipher.jar')
}
targetCompatibility = 1.6
sourceCompatibility = 1.6
android {
target = 'android-14'
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 16
}
}
task copyNativeLibs(type: Copy) …Run Code Online (Sandbox Code Playgroud) 在C#中,我们无法在从基类重写方法时更改访问修饰符.例如
Class Base
{
**protected** string foo()
{
return "Base";
}
}
Class Derived : Base
{
**public** override string foo()
{
return "Derived";
}
}
Run Code Online (Sandbox Code Playgroud)
这在C#中无效,会产生编译时错误.
我想知道原因,为什么不允许这样做.是否存在任何技术问题,或者是否会导致访问限制方面不一致的问题?
我正在尝试使用android studio进行android开发.我用android studio创建了一个项目.现在,我想用git跟踪它.我把它添加到git中,一切都可以正常使用我的本地机器.
但是,当我从不同位置的另一台机器克隆它时,在android studio中打开项目会显示非常不同的项目结构或提示一些错误.
通常,
模块已从gradle结构中删除.你想让它从项目中删除吗?
在深入研究之后,我意识到android studio(基于intelliJ构建)将一些硬编码路径存储到一些项目配置文件中.(特别是.iml文件).但是,将其改为新的道路也是行不通的.
任何人都可以建议我将android studio项目纳入git的正确方法吗?比如,我应该做什么配置?我应该忽略哪些文件?将其克隆到其他机器或路径后,我应该做些什么改变?等等...