Подтвердить что ты не робот

Android N, неспособный скомпилировать в биллинге приложения AIDL

Я просто пытался скомпилировать мое приложение с новым предварительным просмотром SDK 24 Android N в Android Studio 2.1 Preview 1.

У меня в приложении биллинг в моем приложении.

При попытке создать приложение я получаю следующее исключение

aidl.exe E  6416  3312 io_delegate.cpp:102] Error while creating directories: Invalid argument
Error:Execution failed for task ':app:compileDebugAidl'.
> java.lang.RuntimeException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Users\Gebruiker\AppData\Local\Android\Sdk\build-tools\24.0.0-preview\aidl.exe'' finished with non-zero exit value 1

Я уже пытался использовать последнюю версию IInAppBillingService.aidl, но я все равно получаю ту же ошибку. Когда я удаляю файл IInAppBillingService.aidl, проект компилируется.

Здесь часть моей сборки gradle

compileSdkVersion 'android-N'
buildToolsVersion "24.0.0 rc1"

defaultConfig {
    applicationId "xxx.myapp"
    minSdkVersion 14
    targetSdkVersion 'N'
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

Файл IInAppBillingService.aidl находится в следующей папке

src/main/aidl/com/android/vending/billing

Как это исправить?

4b9b3361

Ответ 1

Я думаю, вы должны изменить ниже пунктов

minSdkVersion 'N' и compileSdkVersion 'android-N'

обновите JAVA JDK до 1,8


android {
  ...
  defaultConfig {
    ...
    jackOptions {
      enabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

Ответ 2

Я обновил последнюю версию Android Studio 2.0 Beta 6 и также обновил настройки для поддержки Instant Run из-за предупреждения о версии gradle. Это изменило все мои настройки buildToolsVersion на 24 RC 1. Это начало вызывать ошибку helpl, описанную в этом отчете об ошибке. Мне нужно было вернуться к buildToolsVersion 23.0.2, чтобы иметь возможность компилироваться и запускаться.

Ответ 3

Получил точно такую ​​же проблему с нашими материалами InApp и IInAppBillingService.aidl, и, потратив на это некоторое время, и просмотрев неразрешенный поток отслеживания проблем google, нашел (по крайней мере временно) решение, которое позволяет мне скомпилировать проект с помощью последние материалы под Android N.

Конечно, это не совсем правильно, и после того, как Google исправляет все, что им нужно, он должен быть отменен, но, короче говоря, он должен заменить aidl.exe из текущей бета-версии Build Tools 24.0.0 rc2 с помощью helpl. exe от текущей стабильной версии 23.1 - voila Ошибка "Недопустимый аргумент" отсутствует:)

Ответ 4

Во-первых, наиболее важным шагом является то, что вам нужно получить более подробную информацию об ошибке.

Вы можете использовать одну из следующих команд Gradle для получения более подробной информации.

gradlew assembleDebug --info
gradlew assembleDebug --debug
gradlew assembleDebug --scan
gradlew assembleDebug --stacktrace

Я встречал похожую ситуацию с окружающей средой:

macOS 10.14.2
Android Studio 3.3

Более подробная информация:

ifeegoo:AIDLClient ifeegoo$ ./gradlew assembleDebug

Welcome to Gradle 4.10.1!

Here are the highlights of this release:
 - Incremental Java compilation by default
 - Periodic Gradle caches cleanup
 - Gradle Kotlin DSL 1.0-RC6
 - Nested included builds
 - SNAPSHOT plugin versions in the 'plugins {}' block

For more details see https://docs.gradle.org/4.10.1/release-notes.html

Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details

> Configure project :app
WARNING: The specified Android SDK Build Tools version (28.0.1) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.3.0.
Android SDK Build Tools 28.0.3 will be used.
To suppress this warning, remove "buildToolsVersion '28.0.1'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

> Task :app:compileDebugAidl FAILED
/Users/ifeegoo/Desktop/AIDL/AIDLClient/app/src/main/aidl/com/xb/test/IRomteAidlInterface.aidl:6: couldn't find import for class com.xb.test.IClientAidlInterface


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugAidl'.
> java.io.IOException: com.android.ide.common.process.ProcessException: Error while executing process /Users/ifeegoo/Library/Android/sdk/build-tools/28.0.3/aidl with arguments {-p/Users/ifeegoo/Library/Android/sdk/platforms/android-27/framework.aidl -o/Users/ifeegoo/Desktop/AIDL/AIDLClient/app/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out -I/Users/ifeegoo/Desktop/AIDL/AIDLClient/app/src/main/aidl -I/Users/ifeegoo/Desktop/AIDL/AIDLClient/app/src/debug/aidl -I/Users/ifeegoo/.gradle/caches/transforms-1/files-1.1/support-compat-27.1.1.aar/5625261fa2f53d5e15ed7248754bde52/aidl -d/var/folders/vl/nvypcrfj25n20fhnmtl0t5p40000gn/T/aidl37267774351421868.d /Users/ifeegoo/Desktop/AIDL/AIDLClient/app/src/main/aidl/com/xb/test/IRomteAidlInterface.aidl}

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 6s
2 actionable tasks: 1 executed, 1 up-to-date

Таким образом, наиболее важная подробная информация после сбоя

/Users/ifeegoo/Desktop/AIDL/AIDLClient/app/src/main/aidl/com/xb/test/IRomteAidlInterface.aidl:6: couldn't find import for class com.xb.test.IClientAidlInterface

Наконец, я обнаружил, что что-то не так с моим расположением файла AIDL.