当前位置: 首页 > 知识库问答 >
问题:

Android Studio:如何从其他Android Studio项目导入AIDL文件?

屈升
2023-03-14

一个Android Studio项目包含一个无活动服务,可以通过IMyAidlInterface(属于package com.example.tutorialspoint7.noactivity)与之通信。

另一个Android Studio项目包含一个仅活动的应用程序,仅用于测试前面提到的服务(假设有不同的包,例如com.example.tutorialspoint7.aidlactivity)

如果没有任何特殊配置,aidlactivity项目不知道noactivity项目,因此,aidlactivity中对IMyAidlInterface的任何引用都“无法解析符号IMyAidlInterface”。

我搜索了一种让AIDL项目了解该AIDL文件的方法,但我发现的所有“解决方案”实际上都是复制文件并添加它的变通方法,如本例所示:https://stackoverflow.com/a/16906355/5556250

因此,我转向手动调整应用程序的build.gradle,在其中添加以下内容:

android {
    compileSdkVersion 24
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.example.tutorialspoint7.aidlactivity"
        minSdkVersion 16
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    sourceSets {
        main.java.srcDirs += '../../NoActivity/app/src/main/aidl/com/example/tutorialspoint7/noactivity'
    }
}

然后我同步了它,多么美妙啊,它现在是aidlactivity项目的一部分:

但是AIDLActivity仍然获取“无法解析符号IMyAidlInterface”。

我现在需要做什么才能让它识别文件?

共有1个答案

干善
2023-03-14

问题“解决了”。以下是方法:

  1. 我将手动添加的内容解压缩到应用程序的构建中。格拉德尔:

sourceSets{main.java.srcDirs='../../NoActivity/app/src/main/aidl/com/example/tutorialspoint7/NoActivity}

我手动创建了文件夹。。\AIDLActivity\app\src\main\aidl\com\example\tutorialspoint7\noactivity,然后将原始的imyaidl接口复制到那里。来自“NoActivity”服务项目的aidl文件。

添加导入com。实例教程第7点。无活动。java不工作!!!所以我通过使用其完全限定名引用IMyAidlInterface来解决这个问题:

Gradle同步项目

AIDLActivity项目现在构建时没有任何错误。:-)

学分去这个六月18,2013由dominik2...@gmail.com:https://code.google.com/p/android/issues/detail?id=56755#c1

更新:我通过简单地导入特定的接口,而不是包,成功地避免了显式的完全限定名称的丑陋(duh!):

现在一切都很好,但是。。。为什么每次接口文件在原始服务中发生更改时,我都必须不断复制它,而不仅仅是引用它?我希望有一种方法可以在Android Studio(版本2.2.3)中引用(而不是复制)AIDL文件。

 类似资料:
  • 我运行的是Mac OSX,我安装了android Studio-它启动正常。 问题1 我用一个空活动开始一个新项目。在最上面的窗户上我收到一条信息 问题2 我在底部窗口中看到以下错误: 错误:CompilesDKVersion android-L需要使用JDK 7 Open SDK Settings进行编译 打开文件 当我尝试在设备上运行项目时,我得到以下错误: 失败[INSTALL_FAILED

  • 问题内容: 我在一个项目中有一些代码,想在另一个项目中重用。我需要做什么(在两个文件夹中)才能执行此操作? 目录结构类似于: oo 项目1 file1.py file2.py 酒吧 项目2 fileX.py fileY.py 我想使用fileX.py和fileY.py中的file1.py和file2.py中的函数。 问题答案: 理想情况下,两个项目都是可安装的python程序包,并充满__init

  • 1. 建立广告位,获取广告位ID 登录系统后台创建APP和广告位,获取AppID 以及 广告位ID 根据需求配置广告位 2. 工程中添加SDK代码 初始化SDK (详细说明) 配置AndroidManifest,声明权限和组件 初始化全局SDK代码 根据创建的广告位样式,添加相应的广告样式的代码 横幅(Banner)广告样式 插屏(Interstitial)广告样式 开屏(Splash)广告样式

  • 所以我得到了两个都在同一activity的视图。我正在使用但是,我无法调用在uiview中定义的公共方法... 我对AndroidStudio还很陌生,我在这里发现的只是不同的类,而不是观点。 非常感谢!

  • 因此,我有一个Project1与类A。我有Project2与类B。如何将类A导入到B,而不必在Project2等中创建一个新类。我知道这与构建路径有关,但是我如何添加,以便我可以编写类似于导入Project1/A;的东西?

  • 问题内容: 如何在Python中导入其他文件? 我到底该如何导入特定的文件呢? 如何导入文件夹而不是特定文件? 我想根据用户输入在运行时动态加载Python文件。 我想知道如何从文件中仅加载一个特定部分。 例如,在我有: 尽管这给了我中的所有定义,但也许我只想要一个定义: 我要从import语句中添加些什么? 问题答案: 是Python中的新增功能,用于以编程方式导入模块。它只是一个包装器,请参见