【问题标题】:Imported module in Android Studio can't find imported classAndroid Studio中导入的模块找不到导入的类
【发布时间】:2014-08-24 22:52:10
【问题描述】:

我最近下载了ViewPagerIndicator library 并将其导入android studio。将其添加到我的项目后,我收到渲染错误“找不到以下类:”并指向 com.viewpagerindicator.IconPageIndicator。

我采取的步骤是Files->Import Module->'library name'Project Structure -> Dependencies -> + the imported module。然后在我的布局 xml 文件中添加了<com.viewpagerindicator.IconPageIndicator />,之后我遇到了缺少类的问题。

它编译得很好,我浏览了所有的 build.gradle 和 settings.gradle 文件,并将它们与它们应该在线的内容进行了比较。

MyApp->build.gradledependencies 下有compile project(':library') settings.gradle 具有 include ':library' 且没有构建错误。

【问题讨论】:

  • 我无法重现此问题。这就是我在布局 XML 中的内容: `
  • 类的路径在您的项目中会是什么样子。
  • 您是在询问 .java 文件的位置吗?它在 ${project}/library/src/main/java/com/viewpagerindicator/IconPageIndicator.java
  • 您使用此类的应用程序模块是否在 build.gradle 的依赖项中具有 compile project(':library')。我读到您使用 UI 添加模块依赖项,但只是想确定一下。
  • 离开电脑一段时间;我可能会在这个周末回到它,但它很可能是。我确实使用 UI 进行导入。

标签: android android-studio android-library


【解决方案1】:

首先,您必须按照该路径导入您的库项目:

File --> New --> Import Module

成功导入库项目后,如果“依赖项”部分出现以下行,则必须检查项目文件夹中的 build.gradle 文件:

implementation project(':NameOfTheLibProject')

那么你的项目一定构建成功了。

【讨论】:

  • 还检查 settings.gradle 并包含库,例如:include ':app', ':mylib'
  • compile 现在已弃用。请改用implementationapi
  • 此外,为了您的理解,请注意新导入模块的build.gradle 文件顶部有一行apply plugin: 'com.android.library',而您的应用程序的build.gradle 文件有一行@987654330 @。只是表面上了解 IDE 为您的方便所做的不劳而获的事情!!! :P
【解决方案2】:

我发现我的问题是 Project Structure 下的 Android Plugin Version --> Project 与我的插件都使用的版本不同.一旦我将它们对齐到相同的版本,我就可以从我导入的模块中看到我的所有类。

花了我几个小时:(

【讨论】:

  • 您需要检查项目和导入模块的Android插件版本是否相同。
  • +1 回答您的问题这似乎是对 android 模块的限制。如果我们想使用带有 gradle 插件 com.android.tools.build:gradle:2.1.0 的主项目和带有 com.android.tools.build:gradle-experimental:0.7.0 的库模块怎么办?在这种情况下,库模块的类对主项目不可见:-(
  • 这也拯救了我的一天:我的主项目(android-gradle-plugin 2.4.0-alpha7')正在重用一个外部模块(来自另一个 android-gradle-plugin 为 2.3.3 的项目) .通过对齐所有插件,一些代码(在 ide 中可见但在 gradle 中不可见)突然对 gradle 可见。
  • 这听起来像是我遇到的问题,但是当我转到“项目结构 > 项目”时,“Android 插件版本”字段为空白。仅填充“Gradle 版本”。如果我在该字段中输入某些内容,它似乎会被重置。有任何想法吗?这把我逼疯了。
【解决方案3】:

我遇到了同样的问题。我刚刚做了:无效/重新启动..

【讨论】:

  • 坚持了将近一个小时。这解决了我的问题。登录so 只是为了对此进行投票。
【解决方案4】:

我在导入模块时也遇到了问题,因为它没有出现在模块列表中。它对我有用的方式是通过这种方式在 settings.gradle 中手动输入:

include ':app', 'module_name'

而在 build.gradle

compile project(':module_name')

【讨论】:

    【解决方案5】:

    就我而言,我确实添加了appgradle:

    // Nearly deprecated.
    compile project(':NameOfTheLibProject')
    // Or
    implementation project(':NameOfTheLibProject')
    

    但它只有在我改变时才有效

    compileSdkVersion 
    minSdkVersion 
    targetSdkVersion 
    

    app和其他模块相同。

    【讨论】:

    • 我有一个非常相似的问题。我的库添加得很好,我可以看到可以从我的项目中访问这些类。但是,如果在库中创建了一个新类,即使是重新构建/清理 + 构建也不会使新类可用。我从我的库 build.gradle 中更改了 minSdkVersion,然后瞧(只是因为我记得我最近从我的项目中更新了那个)!
    • 很高兴它对您有所帮助。加油!
    • 虽然这可行,但我知道我们应该遗漏一些东西。有效地重新编译 Android 库应该不难。要么这样,要么有一个烦人的错误。
    【解决方案6】:

    以下解决方案对我有用,只需两个步骤。

    在android studio上进入你的项目结构,从左侧选择项目。将Android插件版本更改为Gradle版本按ok。

    如果再次同步后出现错误,请转到项目结构并选择项目。像以前一样撤消 android 插件版本。Gradle 将对齐库并使类对 XML 文件可见。

    【讨论】:

      【解决方案7】:

      我的问题是不同的编译和目标 SDK 版本, 在我的主应用程序模块和您添加的 lib 模块中提到。 一旦我匹配了他们两个,它就完美地工作了。 因此,只需打开 app 级别的 build.gradle 文件和 lib 模块级别的 SDK 版本检查即可。

      【讨论】:

        【解决方案8】:

        settings.gradle

        dependencies {
        
        implementation 'androidx.appcompat:appcompat:1.3.0'
        implementation 'com.google.android.material:material:1.4.0'
        implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
        implementation project(':wheel') // "Wheel" - you're project path name
        
        }
        

        【讨论】:

          【解决方案9】:

          如果您刚刚更改了 pubspec.yaml 文件中的项目名称,请务必同时更改导入名称,因为它们将保持不变,因此不会找到新名称目录。

          例如。将其更改为:

          import 'package:previousName/backend/connector/userConnector.dart';
          

          到这里:

           import 'package:newName/backend/connector/userConnector.dart';
          

          据我所知,没有终端命令,只有 find-in-files-replace :(

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-01-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-07-10
            • 2022-01-16
            • 1970-01-01
            相关资源
            最近更新 更多