2017-01-04 63 views
4

Aidlライブラリを構築できません。
エラー:エラー:タスク ':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

私はこれらとこだわっているが、可能な解決策を試してみました。

buildToolsVersion "21.0.1" 
+0

siva35 @みました。それは動作していません。 Thnks – AskQ

+0

https://github.com/rharter/auto-value-parcel/pull/92を参照 – AskQ

答えて

0

変更ビルド・ツールは、私は同じ間違いを得たが、私はそれを修正しました。 "IPCでオブジェクトを渡す"と思っています。

私の問題は、Ingredient.aidlのようなオブジェクトのaidlで定義されたパッケージが見つかりませんでしたので、あなたの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

は構築するようにしてください--debugオプションをつけて "探してみる"ことができるので、あなたはそれをイン・アウト・イントゥー」

0

私は同じ種類のエラーに直面しました。 理由は、サービスにアクセスするクライアントアプリケーションにコピーしていた.aidlファイルが適切なパッケージの下にないためです。 パッケージを作成して、アプリケーションの適切なパッケージ名でaidlファイルをコピーしてください。

0

私は左側のナビゲーションバー、および***のコードと一致し 上AIDLのパッケージの名前を変更。AIDL。

関連する問題