- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试编译 .aidl
并生成 .java
但是:
Error:Execution failed for task ':library:compileReleaseAidl'.
> java.lang.RuntimeException: com.android.ide.common.process.ProcessException:
Error while executing 'C:\Users\Michele\AppData\Local\Android\sdk\build-tools\25.0.0\aidl.exe'
with arguments {-pC:\Users\Michele\AppData\Local\Android\sdk\platforms\android-25\framework.aidl
-oC:\Users\Michele\workspace\AndroidLib\library\build\generated\source\aidl\release
-IC:\Users\Michele\workspace\AndroidLib\library\src
-IC:\Users\Michele\workspace\AndroidLib\library\src\release\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\appcompat-v7\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-v4\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-fragment\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-media-compat\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-core-ui\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-core-utils\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\animated-vector-drawable\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-vector-drawable\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-compat\25.0.1\aidl
-dC:\Users\Michele\AppData\Local\Temp\aidl3070615992051288022.d
C:\Users\Michele\workspace\AndroidLib\library\src\IRemoteShortcutService.aidl}
我用这个build.gradle
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
group='com.github.michelelacorte'
android {
compileSdkVersion 25
buildToolsVersion '25.0.0'
defaultConfig {
minSdkVersion 14
targetSdkVersion 25
versionCode 2
versionName "0.2.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
sourceSets {
main {
aidl.srcDirs = ['src/main/aidl']
}
}
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:25.0.1'
testCompile 'junit:junit:4.12'
compile 'com.google.code.gson:gson:2.8.0'
}
还有这个根 build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
我读过关于构建工具的问题,但我没有找到任何关于 API 25 的信息
编辑:
我用参数启动了 aidl.exe
并返回:
aidl.exe E 2236 13884 aidl_language.cpp:224] Error while opening file for parsing: 'C:\Users\Michele\workspace\AndroidLib\library\src\IRemoteShortcutService.aidl'
编辑 2:
Shortcut.aidl
// Shortcut.aidl
package it.michelelacorte.androidshortcuts;
parcelable Shortcuts;
IRemoteShortcutService.aidl
// IRemoteShortcutService.aidl
package it.michelelacorte.androidshortcuts;
interface IRemoteShortcutService {
void addShortcuts(int shortcutsImage, String shortcutsText);
Shortcuts getShortcuts();
}
这个.aidl
位于src/main/aidl
文件夹
最佳答案
您是否尝试向 gradle 添加详细选项或使用相同参数手动执行相同的 aidl.exe?
可能存在 gradle 未显示的来自 aidl.exe 的解释性错误代码或消息。
根据aidl的错误无法打开文件。检查文件是否存在以及内容是否有效。
尝试更改为新的默认布局:
将aidl文件放在/src/main/aidl
build.gradle:
...
sourceSets {
main {
aidl.srcDirs = ['src/main/aidl']
}
}
(尽管,一般来说,如果文件在 /src/main/aidl
中,它应该在没有 aidl.srcDirs 条目的情况下工作)
不要忘记 aidl 文件应该在包文件夹下,例如 java.lang.例如,如果包是 it.michelelacorte.testaidl
,则 aidl 文件应该位于 src/main/aidl/it/michelelacorte/testaidl
下。
在最新版本的 Android Studio 中,如果项目包设置正确,New/AIDL/AIDL File
项目菜单应该已经将文件放置在正确的文件夹下。
关于java - 编译 AIDL 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41110128/
我正在尝试使用 aidls 构建一个库。 LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := test LOCAL_SR
我下载了 android 源代码,试图了解 stub 类在 android 电话系统中的工作原理,所以我使用 aidl convert ITelephony.aidl 但它给我错误,例如: 找不到类
首先,这可能是重复的,但我搜索了大量时间试图修复此错误,但找到的有关此主题的页面都没有帮助我修复错误。以下是我去过的一些地方: Android: AIDL refusing to generate c
我想知道AIDL中的inout参数是做什么用的? 我知道什么是进来的,什么是出去的。 (out 不会编码(marshal)传递的对象)。 但我不明白 inout 是做什么用的。 我查看了: "In/o
我正在尝试实现 AIDL,但我只是不明白它是如何工作的。我的意思是方法调用的进展是什么? 我不明白如何通过 AIDL 将对象从服务获取到我的 Activity 。我一直用google docs寻求指导
我正在应用程序中实现计费,但在构建项目时出现以下错误。 C:\Users\user\AndroidStudioProjects\Blessd\app\src\main\aidl\IInAppBilli
我的 AIDL 文件中有一个函数 int getAvailableTokens(out List list); 我想从主类调用这个函数并作为参数给出 List mylist为了功能将设置它。我该怎么做
我想在我的应用程序中试用 android m 预览。我已经下载了最新的构建工具和 m 平台。我已将其包含在我的 build.gradle 文件(模块应用程序)中: compileSdkVersion
我在我的项目中使用 AIDL,我有两个 apk:AIDLServer 和 AIDLClient。 AIDLServer中目前还没有Activity(只有服务),但是有些操作需要用户的许可(比如蓝牙,L
我必须让其他开发人员能够连接到我的服务,但我的 AIDL 导入了我的类。我不想给他们服务的源代码,只是 APK 和某种 stub 文件(java、jar?)。我怎样才能给他们一些东西 - “胶水” -
我正在研究 AIDL。我的 .aidl 文件在另一个项目(另一个应用程序)中。假设 aidl 文件名为 IService.aidl。但是在分配 IService service = IService.
我有一个 AIDL 文件,我想在其中返回一个整数列表。简单的喜欢: interface blah { List getSubscriptionsForUser(int user); } 但我不
我一直在尝试将 IPC 用于多 apk 项目。 其中一个公开了一个有很多方法的服务。其中一些方法将 Parcelable 对象作为参数(或返回它们)。 我做的第一件事是为我的服务创建一个 aidl 文
当应用程序使用 AIDL 调用远程服务时,是否提供任何安全措施?还是仅仅是恶意应用程序可以读取数据? 最佳答案 在Android上,一个进程不能正常访问另一个进程的内存。 当您绑定(bind)到具有
正在尝试编译在 Android repo 中找到的 AIDL 文件与我的 Android 项目一起使用一些内置接口(interface)。 但是,每当我访问内部类型时,我都会收到以下错误: ITune
使用 aidl 与广播接收器在应用程序之间发送消息(用于后台和前台处理)的优缺点是什么?我一直在使用接收器,由于带有 Intent 过滤器的订阅模型以及易用性/可扩展性,这很好。将这种方法用于 VS
要求:需要将来自不同进程的服务/契约(Contract)公开给其他应用。例如:getPhoneRecord(recordId)、deletePhoneRecord(phoneId)等 可能的解决方案:
我真的很感激任何帮助来解决这个问题:我有一个 svn trunk 项目和一个 svn-bracnch。两者都已 checkout ,并从中创建了一个不同的 Eclipse 工作空间。 我可以毫无错误地
在我们可以使用java接口(interface)帮助客户端应用程序调用绑定(bind)服务的同时,使用AIDL有什么优势? 例如,对于ITestService,我们应该创建一个AIDL,如下所示: /
要了解android中的AIDL,我想要一个真实的例子,意思是我们需要在什么开发场景下使用AIDL。 通过阅读 Android 文档 ...它让我感到困惑和很多问题,所以很难为我阅读整个文档,任何人都
我是一名优秀的程序员,十分优秀!