Lau*_*ent 7 android gradle android-studio
找不到属性jni和源设置'main'
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 21
buildToolsVersion = "22.0.1"
defaultConfig.with {
applicationId = "com.example.native_activity"
minSdkVersion.apiLevel = 9
targetSdkVersion.apiLevel = 9
}
sourceSets.main {
jni.srcDirs = [] // This prevents the auto generation of Android.mk
jniLibs.srcDir = 'src/main/libs'
// This is not necessary unless you have precompiled libraries in your project.
}
}
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪:
Caused by: org.gradle.model.internal.core.ModelRuleExecutionException: Exception thrown while executing model rule: model.android
at org.gradle.model.internal.registry.DefaultModelRegistry.fireMutation(DefaultModelRegistry.java:485)
at org.gradle.model.internal.registry.DefaultModelRegistry.access$1500(DefaultModelRegistry.java:45)
at org.gradle.model.internal.registry.DefaultModelRegistry$RunModelAction.apply(DefaultModelRegistry.java:1464)
at org.gradle.model.internal.registry.DefaultModelRegistry.transitionTo(DefaultModelRegistry.java:341)
at org.gradle.model.internal.registry.DefaultModelRegistry.transition(DefaultModelRegistry.java:419)
at org.gradle.model.internal.registry.DefaultModelRegistry.atStateOrMaybeLater(DefaultModelRegistry.java:183)
at org.gradle.model.internal.registry.DefaultModelRegistry.atStateOrLater(DefaultModelRegistry.java:175)
at org.gradle.execution.TaskNameResolver.selfClose(TaskNameResolver.java:101)
at org.gradle.execution.TaskNameResolver.selfClosedTasksNode(TaskNameResolver.java:114)
... 60 more
Caused by: org.gradle.api.internal.MissingMethodException: Could not find method main() for arguments [build_f1cmjkxjjzysskbrs6852ixyj$_run_closure1_closure2_closure7@8c09fa7] on SourceSet container.
Run Code Online (Sandbox Code Playgroud)
在过去的两个小时里,我用疯狂的Google搜索...
作为Awanish说-读实验Plugin用户指南步步非常小心.要获得更多间隙,请检查google提供的ndk-samples中的build.gradle文件.
sourceSets.main { }有不同的语法,应该在android { }块之外.在你的情况下,它应该看起来像这样:
model {
android {
//...
}
android.sources {
main {
jniLibs {
source {
srcDirs 'libs'
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下,它与tochkov答案完全相反:
这个语法 - 在 android块之外的jniLibs - 给了我一个错误:
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.mycompany.myproject"
minSdkVersion 17
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
}
Run Code Online (Sandbox Code Playgroud)
这个语法 - 在 android块内 - 修复它:
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.mycompany.myproject"
minSdkVersion 17
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 1
看来您正在尝试使用等级实验插件!
确保您的以下成绩达到 2.5 级gradle-wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-2.5-all.zip
Run Code Online (Sandbox Code Playgroud)
这在你的项目的build.gradle依赖标签中
classpath 'com.android.tools.build:gradle-experimental:0.1.0'
Run Code Online (Sandbox Code Playgroud)
我不会猜测很多事情,而是将您重定向到用户指南,其中文档详细解释了从标准插件到实验性插件的迁移。看看这里!
尝试这些修复。如果这些对您不起作用,请发布更多详细信息,我会尽力提供帮助。:)
| 归档时间: |
|
| 查看次数: |
6226 次 |
| 最近记录: |