为cordova(Android)开发插件时无法找到源java类

Posted

技术标签:

【中文标题】为cordova(Android)开发插件时无法找到源java类【英文标题】:Unable to find source java class while developing plugin for cordova (Android) 【发布时间】:2018-09-26 16:27:03 【问题描述】:

我正在为cordova 开发一个插件,该插件使用名为pagseguro 的巴西支付API。但这不是重点。

当我将我的 cordova 插件添加到我的项目并运行“cordova run android”时,我收到此错误并且我不知道如何继续:

Execution failed for task ':app:compileDebugJavaWithJavac'.

找不到源 java 类:'/home/marcelo/Documents/Delicia-e-Foco/app/platforms/android/app/src/main/java/main/java/com/pagseguroCordova/PagseguroCordova.java'因为它不属于任何源目录:'[/home/marcelo/Documents/Delicia-e-Foco/app/platforms/android/app/src/main/java, /home/marcelo/Documents/Delicia- e-Foco/app/platforms/android/app/src/debug/java, /home/marcelo/Documents/Delicia-e-Foco/app/platforms/android/app/build/generated/source/r/debug, /主页/marcelo/Documents/Delicia-e-Foco/app/platforms/android/app/build/generated/source/buildConfig/debug, /home/marcelo/Documents/Delicia-e-Foco/app/platforms/android/app /build/generated/source/aidl/debug, /home/marcelo/Documents/Delicia-e-Foco/app/platforms/android/app/build/generated/source/rs/debug]'

已经尝试修改我的 plugin.xml。这是现在的 plugin.xml:

<?xml version="1.0" encoding="UTF-8"?>
    <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="cordova-plugin-pagseguro"
version="1.0.0">

<js-module src="./www/plugin.js" name="plugin">
    emphasized text<clobbers target="PagseguroCordova" />
</js-module>

<!-- android -->
<platform name="android">
    <config-file target="res/xml/config.xml" parent="/*">
        <feature name="pagseguroCordova" >
            <param name="android-package" value="com.example.pagseguroCordova"/>
        </feature>
    </config-file>

    <framework src="build.gradle" custom="true" type="gradleReference" />
    <framework src='br.uol.pagseguro.client:btserial:1.1.0' />
    <framework src='br.uol.pagseguro.client:plugpag:1.1.0' />
    <source-file src="src/android/PagseguroCordova.java" target-dir="src/main/java/com/pagseguroCordova/" />
</platform>

我正在使用 gradle 导入依赖,这是我的 build.gradle 文件:

repositories 
    jcenter()
        maven 
            url 'https://github.com/pagseguromaster/plugpag/raw/master/android'
    


dependencies 
    compile 'br.uol.pagseguro.client:btserial:1.1.0'
    compile 'br.uol.pagseguro.client:plugpag:1.1.0'

有人知道是什么导致了这个错误吗?感谢您的关注。

【问题讨论】:

【参考方案1】:

删除 .idea.gradle 文件夹对我有用。

下次启动时,在 Android Studio 中打开项目文件夹,它应该重新创建它们。

然后它给了我Android Studio: "Please select Android SDK" 对话框。

对我来说修复是:文件 -> 项目结构 -> (modules)App -> BuildToolsVersion -> ...然后(奇怪地)单击以打开下拉菜单并单击已选择的完全相同的项目。

然后重建。

解决,谷歌!

(Android Studio 3.1.2)

【讨论】:

【参考方案2】:

我没有使用任何特殊的 IDE(是的,我生活在一块石头下)

cordova clean

为我工作

【讨论】:

这个命令让我免于很多麻烦。唯一的选择是删除并再次添加平台。谢谢!【参考方案3】:

Android Studio“构建”下拉菜单中的“清洁项目”为我解决了这个问题。

【讨论】:

对我来说,问题似乎是一个目录被符号链接到项目中,该项目也是一个 NFS 共享,而 Android Studio 不喜欢这样。我不知道是符号链接还是 NFS 导致了问题,但是每次我从符号链接目录中修改某些内容时,我都必须执行 CLean Project。【参考方案4】:

如果您在 Jenkins 中遇到此问题,请转到您的项目

工作区 -> 清除当前工作区(点击)

【讨论】:

以上是关于为cordova(Android)开发插件时无法找到源java类的主要内容,如果未能解决你的问题,请参考以下文章

Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例

Cordova 无法添加插件:错误:找不到模块“unorm”

Ionic Cordova 构建失败并出现错误无法应用插件

安装cordova插件后我无法在ionic中构建android apk

无法使用 android 上的 cordova s​​ocialsharing 插件在 facebook 上共享自定义文本

Cordova 插件:无法检索图片的路径