2017-01-04 5 views
4

Я не могу построить Aidl Library.
Ошибка:Ошибка: выполнение выполнено для задачи ': app: compileDebugAidl ProcessException


Error:Execution failed for task ':app:compileDebugAidl'. java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while executing
'D:\mysdk\Android\android-sdk\build-tools\22.0.1\aidl.exe' with arguments
{-pD:\mysdk\Android\android-sdk\platforms\android-21\framework.aidl -...
dC:\Users\admin\AppData\Local\Temp\aidl6013369886374174489.d ...\dev\myaidllibrary\ICoffeeMakerRemoteService.aidl}

build.gradle:

apply plugin: 'com.android.library' 
apply plugin: 'com.neenbedankt.android-apt' 
android { 
    compileSdkVersion 21 
    buildToolsVersion '22.0.1' 
    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:21.0.0' 
    testCompile 'junit:junit:4.12' 
    provided 'com.google.auto.value:auto-value:1.2-rc1' 
    // needed for Android Studio 
    apt 'com.google.auto.value:auto-value:1.2-rc1' 
    apt 'com.ryanharter.auto.value:auto-value-parcel:0.2.0' 
} 

Структура каталогов:

aidl->
ICoffeeMakerRemoteService.aidl
Ingredient.aidl
java->
Ingredient.java

я застрял с ними, пытались возможные решения.

+0

@ siva35 пытался. Это не работает. Thnks – AskQ

+0

См. Https://github.com/rharter/auto-value-parcel/pull/92 – AskQ

ответ

0

изменение сборки инструмент

buildToolsVersion "21.0.1" 
3

Я получил ту же ошибку, но я установил ее. Я предполагаю, что вы хотите «Передавать объекты через IPC», так же как и я.

Моя проблема в том, что я пропустил пакет в объектной помощи, такой как Ingredient.aidl, поэтому, пожалуйста, попробуйте добавить пакет в ваш файл справки ,

, например:

Rect.aidl

package android.graphics; // important 

// Declare Rect so AIDL can find it and knows that it implements 
// the parcelable protocol. 
parcelable Rect; 
2

Для меня, это произошло, когда я определяю методы перегрузки с разными подписями в aidl. Похоже, методы перегрузки не поддерживаются.

Не допускается:

public void methodA(int a); 
public void methodA(int a, String b); 

Разрешено:

public void methodA(int a); 
public void methodB(int a, String b); 

Найдено более не допускается, не может определить массив строк в подписи не допускается:

public void methodA(String[] a); 
0

Try строить с параметром --debug и ищем «может быть выходным типом, поэтому вы должны объявить его как in, out или inout ".

0

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

0

Я переименовать в aidl впакет на левой панели навигации и Consistent с кодом в ***. Aidl.

Смежные вопросы