当前位置: 首页 > 知识库问答 >
问题:

Gradle无法编译NDK文件

长孙星汉
2023-03-14

我从github获得了一个项目的源代码(一个android应用程序),我正在尝试推出它,这个项目叫做“RTKGPS+”,它是一个使用C++库Rtklib来玩GPS和原始测量的Anroid应用程序

我的Android环境配置很低,

Gradle version : 3.1.3
NDK revision : 19.0.5232133

我无法编译这个项目,我得到了以下错误:

    null
SIMPLE: Error while executing process C:\Users\Yazid\AppData\Local\Android\Sdk\ndk-bundle\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Users\Yazid\Documents\Dev\Android\RtkGps-master\RtkGps-master\jni\Android.mk NDK_APPLICATION_MK=C:\Users\Yazid\Documents\Dev\Android\RtkGps-master\RtkGps-master\jni\Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=0 APP_PLATFORM=android-21 NDK_OUT=C:/Users/Yazid/Documents/Dev/Android/RtkGps-master/RtkGps-master/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT=C:\Users\Yazid\Documents\Dev\Android\RtkGps-master\RtkGps-master\build\intermediates\ndkBuild\release\lib APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n}

    null
SIMPLE: Android NDK: WARNING: Unsupported source file extensions in C:\Users\Yazid\Documents\Dev\Android\RtkGps-master\RtkGps-master\jni\Android.mk for module rtklib    

我尝试从以下答案添加分级代码:https://stackoverflow.com/a/50707270/6306138

项目的分级文件。

buildscript {
    repositories {
        mavenCentral()
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
    }
}
apply plugin: 'com.android.application'

repositories {
    mavenCentral()
    jcenter()
    google()
}

dependencies {
    implementation  group: 'cz.msebera.android' , name: 'httpclient' , version: '4.4.+'
    implementation 'com.android.support:support-v13:27.1.1'
    implementation 'com.google.gms:google-services:3.2.1'
    implementation 'com.google.android.gms:play-services-gcm:11.0.4'
    implementation 'com.google.code.findbugs:jsr305:3.0.2'
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.jakewharton:butterknife:8.8.1'
    implementation 'com.karumi:dexter:5.0.0'
    implementation 'ch.acra:acra:4.5.0'
    implementation 'commons-net:commons-net:3.6'
    implementation 'org.slf4j:slf4j-api:1.7.25'
    implementation 'com.infstory:proguard-annotations:1.0.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}

android {
    sourceSets.main.res.filter.exclude '**/proj4/jniwrap/org/**'

    lintOptions {
        checkReleaseBuilds false
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
    }

    compileSdkVersion 26
    buildToolsVersion '27.0.3'
    defaultConfig {
        applicationId "gpsplus.rtkgps"
        minSdkVersion 21
        targetSdkVersion 26
        multiDexEnabled true
        ndk {
            abiFilters = []
            abiFilters.add('armeabi-v7a')
            abiFilters.add('x86')
            abiFilters.add('x86_64')
            abiFilters.add('arm64-v8a')
        }
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
            jniLibs.srcDir 'libs'
        }

           //    instrumentTest.setRoot('tests')
    }
    externalNativeBuild {
        ndkBuild {
            path 'jni/Android.mk'
        }
    }
    packagingOptions{
        doNotStrip '*/mips/*.so'
        doNotStrip '*/mips64/*.so'
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    buildTypes {
        debug {
            debuggable true
            jniDebuggable false
            renderscriptDebuggable false

        }

    }
    productFlavors {
    }
}


共有1个答案

子车轶
2023-03-14

所说的“错误”都不是错误。ndk_project_path=null是Studio的正常行为,第二种行为只是警告。

没有看到您的Android.mk或完整的错误消息(您包含的消息后面的行告诉您出了什么问题),我无法告诉您如何修复该警告,但就像警告所说的,您的一个源文件有一个无法识别的扩展名,所以ndk-build不知道如何构建它。

 类似资料:
  • 每次我尝试在Windows上用Gradle集成创建一个新的IntelliJ14.1.4项目时,当我在项目中包含了任何Groovy源文件时,在执行“make”命令时都会收到以下错误... 我试过: null 我可以运行命令,该命令可以正确编译,并且可以将构建war部署到应用程序服务器(在我的示例中是Tomcat 7.0.47) 然而,在观看IntelliJ IDEA 13中的Gradle入门(他们没

  • 该应用程序从另一台机器为我工作,现在从另一台计算机上的存储库下载文件给了我这个问题 失败:构建失败,出现异常。 > 其中:设置文件'C:\Users\samoe\Desktop\MCGPS\TeachAll\android\Settings.gradle' 出了什么问题:无法编译设置文件“C:\Users\samue\Desktop\MCGPS\TeachAll\android\settings.

  • 我的Android项目中有一个C文件(

  • 我的目标是拥有一个其他构建文件可以在gradle中看到的公共类。我已经创建了一个名为buildSrc的文件夹,它位于我的android项目的根目录中。内容如下: 从文档中可以看出,放入文件夹buildSrc的类将自动放入与我的android构建脚本相同的类路径中。但实际上,找不到该类。我试图引用构建中的类。应用程序级别的gradle文件,但找不到类。以下是我如何称呼CountryFlavors类:

  • 我得到这个错误,而执行maven试图修复此代码5天非解决方案工作 [ERROR]无法执行目标org.apache.maven.plugins:maven-surefire-plugin:2.19.1:项目com.learn.selenium测试(default-test):目标org.apache.maven.plugins的执行default-test:maven-surefire-plugin