Как добавить каталог внутри пакета? - PullRequest
0 голосов
/ 29 июня 2018

У меня есть проект Android, который состоит из собственных частей (файлы *.cpp и *.h) в папке jni. В этом есть пакет с именем modules, в котором есть несколько каталогов. Я хотел бы добавить свой собственный модуль в пакет modules с другим подкаталогом, однако я могу добавлять только пакеты:

Adding a package to a package in Android Studio

Поскольку я считаю, что Android Studio ограничивает меня в этом вопросе, Я добавил папку за пределами Android Studio, удалил папку .idea, файлы *.iml и повторно синхронизировал Gradle. Однако мой новая папка по-прежнему представляет собой пакет (значок, такой как папка модуля), а не простой подкаталог, как другие каталоги:

Added folder becomes a package after Gradle sync

Надеюсь, я правильно понял терминологию и не достаточно разбираюсь в пакетах и ​​каталогах. Де-факто другие каталоги верны, но я не смог найти ничего в файлах Gradle, которые бы объясняли это поведение.

Вот build.gradle библиотеки:

apply plugin: 'com.android.library'

android {
    // If you want to use the debugger for JNI code, you want to compile this lib-project in Debug!
    // And due to gradle limitations/bugs, the best way is to always compile it in debug.
    // See https://code.google.com/p/android/issues/detail?id=52962
    // and http://stackoverflow.com/questions/27277433/why-does-gradle-build-my-module-in-release-mode-when-the-app-is-in-debug
    // defaultPublishConfig "debug"
    compileSdkVersion 25
    buildToolsVersion '27.0.3'

    defaultConfig {
        compileSdkVersion 25
        buildToolsVersion "27.0.3"
        minSdkVersion 14
        externalNativeBuild {
            ndkBuild {
                arguments "-j2"
            }
        }
        ndk {
            // Specifies the ABI configurations of your native
            // libraries Gradle should build and package with your APK.
            abiFilters 'armeabi-v7a'
        }
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main {
            java {
                srcDirs('src/main/java', 'src/jni/SDL2-2.0.5/android-project/src')
            }
        }
    }
    externalNativeBuild {
        ndkBuild {
            path "src/jni/Android.mk"
        }
    }
    lintOptions {
        abortOnError false
    }
}

dependencies {
    api fileTree(dir: 'libs', include: ['*.jar', '*.arr'])
    api 'com.android.support:appcompat-v7:25.2.0'
    api 'com.google.android.gms:play-services-ads:11.0.4'
}

И build.gradle всего проекта:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        google()
        flatDir {
            dirs 'libs'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Я добавил свои новые файлы в новую папку в Android.mk, как и другие файлы.

Как добавить каталог вместо пакета в эту папку modules?

Дополнительная информация: Это порт Android игровой платформы LÖVE (love2d). Я использую Mac.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...