Как создать Android-приложение с помощью gradle в AOSP?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как создать Android-приложение с помощью gradle в AOSP?

Сообщение Anonymous »

Версия AOSP — 8.1.0.
У меня есть приложение для Android под названием «Настройки». Я разрабатываю с помощью Android Studio и помещаю его в packages/apps/MySettings.
Такой каталог

Код: Выделить всё

MySettings
├── AndroidManifest.xml
├── Android.mk
├── build.gradle
├── libs
├── res
└── src

Код: Выделить всё

Android.mk
вот так

Код: Выделить всё

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_PACKAGE_NAME := MySettings
LOCAL_MODULE_TAGS := optional
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := false

LOCAL_STATIC_JAVA_LIBRARIES := appcompat-1.1.0
LOCAL_STATIC_JAVA_LIBRARIES += BaseRecyclerViewAdapterHelper-2.9.46
LOCAL_STATIC_JAVA_LIBRARIES += constraintlayout-1.1.3
LOCAL_STATIC_JAVA_LIBRARIES += material-1.1.0
LOCAL_STATIC_JAVA_LIBRARIES += ZTextView-v1.0.2

LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_SRC_FILES := $(call all-java-files-under, src)

include $(BUILD_PACKAGE)

include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := appcompat-1.1.0:/libs/appcompat-1.1.0.aar
LOCAL_AAPT_FLAGS += \
--auto-add-overlay \
--extra-packages androidx.appcompat
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += BaseRecyclerViewAdapterHelper-2.9.46:/libs/BaseRecyclerViewAdapterHelper-2.9.46.aar
LOCAL_AAPT_FLAGS += \
--auto-add-overlay \
--extra-packages com.chad.library
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += constraintlayout-1.1.3:/libs/constraintlayout-1.1.3.aar
LOCAL_AAPT_FLAGS += \
--auto-add-overlay \
--extra-packages androidx.constraintlayout.widget
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += material-1.1.0:/libs/material-1.1.0.aar
LOCAL_AAPT_FLAGS += \
--auto-add-overlay \
--extra-packages com.google.android.material
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += ZTextView-v1.0.2:/libs/ZTextView-v1.0.2.aar
LOCAL_AAPT_FLAGS += \
--auto-add-overlay \
--extra-packages cc.ibooker.ztextviewlib

LOCAL_MODULE_TAGS := optional

include $(BUILD_MULTI_PREBUILT)

Код: Выделить всё

build.gradle
вот так

Код: Выделить всё

apply plugin: 'com.android.application'

dependencies {
//    implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.1.0'
api 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.46'
implementation 'com.github.zrunker:ZTextView:v1.0.2'
}

android {
compileSdkVersion 27

defaultConfig {
applicationId "com.example.setting"
minSdkVersion 27
targetSdkVersion 27
versionCode 1
versionName "1.0"
}

buildTypes {
release {
minifyEnabled false
}
}

compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}

sourceSets {
main.manifest.srcFile 'AndroidManifest.xml'
main.java.srcDirs = ['src']
main.aidl.srcDirs = ['src']
main.res.srcDirs = ['res']
}

}
Я поместил указанные выше 5 файлов aar в каталог libs.

Когда я создаю это, если присутствует файл Android.mk, Я получу ошибку

Код: Выделить всё

error: No resource identifier found for attribute 'layout_constraintStart_toStartOf' in package 'com.example.setting'
Если существует только build.gradle, а Android.mk не существует, make не сообщит об ошибке, но окончательно сгенерированное ПЗУ не будет содержать это приложение.
Я вижу много каталогов с исходными кодами приложений в каталоге frameworks/support/samples, у них есть build.gradle, но нет Android.mk.
Как это работает? заставить найти их?

Подробнее здесь: https://stackoverflow.com/questions/786 ... le-in-aosp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»