Мы имели ту же ошибку сегодня, в Rajawali проекте - то есть, мы не реализовали родные но использует библиотеку, которая реализует некоторые собственные компоненты OpenGL. Я полагаю, что это как-то связано с обновлением Android Studio (на этой машине было 2.2.3
), но я не могу четко сказать на этом этапе. Это просто «внезапно перестало работать».
Однако нам нужно было перейти на экспериментальные инструменты для сборки Android и применить исправление Майка выше, чтобы заставить его работать. A (несколько устаревшее) руководство по миграции можно найти here. Для справки, нам нужно настроить только build.gradle
и app/build.gradle
, которые теперь выглядят следующим образом:
// build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle-experimental:0.8.3'
// used to be: 'com.android.tools.build:gradle:2.2.2'
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
}
}
... и
//app/build.gradle
apply plugin: 'com.android.model.application'
// used to be 'com.android.application'
// android() migrated according to guide
// note that buildConfigFields() is missing, because it lead to errors
model {
android {
compileSdkVersion 19
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.projecttango.experiments.augmentedrealitysample"
minSdkVersion.apiLevel 19
targetSdkVersion.apiLevel 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles.add(file("proguard-rules.pro"))
}
}
productFlavors {
create("flavor1") {
applicationId "com.app"
}
}
sources {
main {
java {
source {
srcDir "src"
}
}
}
}
// Fix suggested by Mike above
ndk {
platformVersion 21
}
}
}
// Remaining Rajawali "noise"
def external_lib_prefix = null
if (project.hasProperty("Tango.catkin_devel_prefix")) {
external_lib_prefix = project.property("Tango.catkin_devel_prefix")
} else {
// Building in standalone sample form.
external_lib_prefix = "../../TangoReleaseLibs"
}
repositories {
flatDir {
dirs external_lib_prefix + '/aar'
}
}
dependencies {
compile fileTree(dir: external_lib_prefix + '/jar', include: ['**/*.jar'])
compile (name: 'tango_support_java_lib', ext: 'aar')
compile 'org.rajawali3d:rajawali:[email protected]'
}
После того, как вы закончите, убедитесь, что для синхронизации проекта Gradle в Android Студия. В противном случае, когда вы попытаетесь запустить сразу, вы увидите что-то вроде Task 'generateDebugSources' not found in project ':app'
.
спасибо. Я попробую. – phatty
Это устранило ошибку «Выполнение не выполнено для задачи»: app: transformNative_libsWithStripDebugSymbolForDebug', но теперь я получаю сообщения «Android NDK: WARNING: нет модулей для создания этого проекта!», Поэтому мне может потребоваться изменить способ использования собственного кода в мое приложение скомпилировано с AS и Gradle. Я пытаюсь создать приложение Makeblock для Android (https://github.com/Makeblock-official/Makeblock-App-For-Android), которое содержит собственный C-код. – HeatfanJohn