我无法建立Aidl图书馆 错误:
错误:任务':app:compileDebugAidl'执行失败。 java.lang.RuntimeException:com.android.ide.common.process.ProcessException:执行
' D:\ mysdk \ Android \ android-sdk \ build-tools \ 22.0.1 \ aidl时出错。 exe文件'带参数
{{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 :(得分:3)
我犯了同样的错误,但我修好了。 我想你想要“通过IPC传递对象”,我也是。
我的问题是我错过了对象aidl中的包定义,例如Ingredient.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;
答案 1 :(得分: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);
发现更多是不允许的,无法在签名中定义String数组 不允许:
public void methodA(String[] a);
答案 2 :(得分:1)
我重命名 左侧导航栏上的 aidl的 包,以及 与***。aidl中的代码一致。
答案 3 :(得分:0)
将构建工具更改为
buildToolsVersion "21.0.1"
答案 4 :(得分:0)
https://github.com/frankiesardo/icepick/issues/46
1.Delete android/app/build Folder
2.build -> clean
3.build -> rebuild
try again.
答案 5 :(得分:0)
尝试使用--debug选项构建并查找“可以是out类型,因此您必须将其声明为in,out或inout。”
答案 6 :(得分:0)
我遇到了同样的错误。 原因是我复制到客户端应用程序的.aidl文件访问该服务不在正确的包下。 只需尝试创建包,并确保将aidl文件复制到应用程序的正确包名下。