为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”
安装cordova插件后我无法在ionic中构建android apk
无法使用 android 上的 cordova socialsharing 插件在 facebook 上共享自定义文本