У меня есть приложение для Android, которое использует библиотеки OpenGL и PVRTC Tool. Это приложение отлично работает на Eclipse до API 19. Теперь я хочу переместить это до API 23, поэтому подумайте о переносе приложения в Android Studio, а также в будущую синхронизацию обновлений. Я сталкиваюсь с проблемами в этом портировании, пожалуйста, посмотрите на скриншоты, чтобы увидеть иерархию папок, я имею в Eclipse, работает кодПортирование проекта из Eclipse в Studio
[
[
После был мой Android.mk файл:
LOCAL_PATH := $(call my-dir)
PVRSDKDIR := $(LOCAL_PATH)
include $(PVRSDKDIR)/Tools/OGLES2/Build/Android/Android.mk
include $(CLEAR_VARS)
LOCAL_MODULE := nativeegl
LOCAL_CFLAGS := -DBUILD_OGLES2 -Wall -g
LOCAL_SRC_FILES := CCAppMain.cpp
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2# -lGLESv1_CM
LOCAL_STATIC_LIBRARIES := \
ogles2tools \
android_native_app_glue
LOCAL_C_INCLUDES := \
$(PVRSDKDIR)/Builds/OGLES2/Include \
$(PVRSDKDIR)/Tools \
$(PVRSDKDIR)/Tools/OGLES2
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
А это соответствует Application.mk файла в Eclipse,
# The ARMv7 is significanly faster due to the use of the hardware FPU
#APP_ABI := armeabi armeabi-v7a x86
#APP_OPTIM := release
APP_STL := stlport_static
Я использую Android Studio версии 1.4, Gradle Встроенного 2,5
установил, как путь к классам ««com.android.tools.build:gradle-experimental классов: 0.2.0 "
Мое приложение модуль built.gradle выглядит
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.1"
defaultConfig.with {
applicationId = "xxx"
minSdkVersion.apiLevel = 14
targetSdkVersion.apiLevel = 23
versionCode = 1
versionName = "1.0"
}
}
compileOptions.with {
sourceCompatibility=JavaVersion.VERSION_1_7
targetCompatibility=JavaVersion.VERSION_1_7
}
android.ndk {
moduleName = "nativeegl"
//cppFlags += "-I${file("src/main/jni/native_app_glue")}".toString()
cppFlags += "-I${file("src/main/jni")}".toString()
cppFlags += "-I${file("src/main/jni/Tools")}".toString()
cppFlags += "-I${file("src/main/jni/Tools/OGLES2")}".toString()
cppFlags += "-I${file("src/main/jni/Tools/OGLES2/GLES2")}".toString()
ldLibs += ["android", "EGL", "GLESv2", "OpenSLES", "log"]
stl = "stlport_static"
}
android.buildTypes {
release {
minifyEnabled = false
proguardFiles += file('proguard-rules.txt')
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:support-v4:23.0.1'
}
Я действительно п Ot возможность настроить приложение на данный момент, по синхронизации он всегда дает такие ошибки, как
Error:Execution failed for task ':app:compileArmeabi-v7aDebugNativeeglSharedLibraryNativeeglMainCpp'.
> Multiple build operations failed.
C++ compiler failed while compiling PVRTPrint3D.cpp.
C++ compiler failed while compiling PVRTBackground.cpp.
C++ compiler failed while compiling PVRTShader.cpp.
C++ compiler failed while compiling PVRTPrint3DAPI.cpp.
C++ compiler failed while compiling PVRTPFXParserAPI.cpp.
See the complete log at: file:///E:/Android_Studio_Project/XXX/app/build/tmp/compileArmeabi-v7aDebugNativeeglSharedLibraryNativeeglMainCpp/output.txt
Может кто-нибудь посмотреть в нее и сделать поправку на мой build.gradle файл. Я предполагаю, что инструмент PVRTC в нем игнорируется.
Любая помощь будет оценена по достоинству.
так что вы можете сказать мне, пожалуйста, правильно build.gradle NDK {} DSL, я пошел выбросить некоторые ответы здесь , но не смог его решить – Sunny
Это сработало, но это похоже на обходное решение, так как я не могу отладить код NDK, но THANKS – Sunny
@ user2207638: проверьте связанный [ответ] (http://stackoverflow.com/questions/32636150/define-local-src-files-in-ndk-dsl/32640823 # 32640823): Я обновил его несколько раз, пытаясь отслеживать быстрый прогресс с помощью * experimental * плагин. –