【问题标题】:Getting compile error: package com.twilio.sdk does not exist出现编译错误:com.twilio.sdk 包不存在
【发布时间】:2014-02-05 20:49:27
【问题描述】:

Java 中的新蜜蜂在这里。 我在 ubuntu 12.04 机器上。

我正在尝试使用 java 的 Twilio API 从 uiautomator 测试用例进行语音调用,并按照https://www.twilio.com/docs/java/install 提供的说明进行操作。我从http://search.maven.org/#browse|1260284827(预建)下载了twilio-java-sdk-3.4.2-with-dependencies.jartwilio-java-sdk-3.4.2.jar

我在 uiautomator java 项目中使用 Twilio API。我能够在不实现 Twilio API 代码的情况下构建和运行该 uiautomator java 项目。但是,如果我尝试使用 Twilio API 库,我会收到一个编译时错误,它找不到包

我正在做的步骤:

1->在eclipse中打开java项目

2-> 通过BuildPath->Configure Build Path->Add External JARs 添加Twilio java 库twilio-java-sdk-3.4.2-with-dependencies.jartwilio-java-sdk-3.4.2.jar

我有以下代码行来测试我是否可以制作TwilioRestClient 对象。我有 uiautomator 的其他测试功能,没有这段代码它们可以正常工作。除了其他测试方法之外,请考虑以下方法。

test.java

//Assume all other required libraries are imported
import com.twilio.sdk.TwilioRestClient;

public class testClient extends UiAutomatorTestCase {   

    public void testMethodGetClient(){
        try{
            TwilioRestClient client = new TwilioRestClient("ACCOUNT_SID", "AUTH_TOKEN");
            log.info("client: " + client.getAccountSid());
        }catch(Exception e){
            log.info(e.toString());
        }
    }
}

comiple/build 命令之前,我的代码中没有出现任何引用错误。要相信,如果我这样做 client. ,eclipse 会向我展示所有可用于 client 对象的方法。那么,我可以在这里假设我的导入成功了吗? 然后我去终端并执行下面的命令来创建build.xml文件:

ubuntu 终端

$> android create uitest-project -n JARNAME -t 1 -p <PATH-TO-PROJECT>
$> ant clean build
Buildfile: <PATH-TO-PROJECT>/build.xml

-check-env:
 [checkenv] Android SDK Tools Revision 22.3.0
 [checkenv] Installed at <ANDROID-SDK-PATH>

-pre-clean:

clean:
   [delete] Deleting directory <PATH-TO-PROJECT>/bin

-check-env:
 [checkenv] Android SDK Tools Revision 22.3.0
 [checkenv] Installed at <ANDROID-SDK-PATH>

-build-setup:
[getbuildtools] Using latest Build Tools: 19.0.0
     [echo] Resolving Build Target for <PACKAGE-NAME>...
[getuitarget] Project Target:   Android 4.2.2
[getuitarget] API level:        17
     [echo] ----------
     [echo] Creating output directories if needed...
    [mkdir] Created dir: <PATH-TO-PROJECT>/bin
    [mkdir] Created dir: /<PATH-TO-PROJECT>/bin/classes

-pre-compile:

compile:
    [javac] Compiling 33 source files to <PATH-TO-PROJECT>/bin/classes
    [javac] <PATH-TO-PROJECT>/test.java:15: package com.twilio.sdk does not exist
    [javac] import com.twilio.sdk.TwilioRestClient;
    [javac]                      ^
[javac] <PATH-TO-PROJECT>/test.java:42: cannot find symbol
[javac] symbol  : class TwilioRestClient
[javac] location: class <packagename>.Telephony
[javac]             TwilioRestClient client = new TwilioRestClient("ACCOUNT_SID", "AUTH_TOKEN");
[javac]             ^
[javac] <PATH-TO-PROJECT>/test.java:42: cannot find symbol
[javac] symbol  : class TwilioRestClient
[javac] location: class <packagename>.Telephony
[javac]             TwilioRestClient client = new TwilioRestClient("ACCOUNT_SID", "AUTH_TOKEN");
[javac]                                           ^
    [javac] 3 errors

BUILD FAILED
<ANDROID-SDK-PATH>/tools/ant/uibuild.xml:183: Compile failed; see the compiler error output for details.

Total time: 1 second

如果我没有 testMethodGetClient 方法,上述命令将创建 .jar。因此,我搜索了 package not found 错误的文章,但其中大多数建议通过“添加外部罐子”或“提供类路径”来添加库。我都试过了,我得到了同样的错误。所以,我来到这里并将其作为一个新问题发布。

非常感谢任何帮助。

问候, 反刍

【问题讨论】:

    标签: java android eclipse ant twilio


    【解决方案1】:

    第三方 jars 的默认位置通常是项目底部的 libs 文件夹,即 &lt;PATH-TO-PROJECT&gt;

    【讨论】:

      【解决方案2】:

      bgossit 的回答确实帮助我朝着正确的方向前进。然而,仅此还不够。所以,我自己回答我的问题,解释我必须做的一些额外步骤。

      我的第一个瓶颈解决了,也就是编译成功了。但是,我仍然无法在 Android 设备上运行该项目。我将此评论标记为答案,因为问题是针对编译错误的。我对运行时错误提出了一个新问题。

      我发现 uiautomator 的“android create project”命令创建了一个“build.xml”,它在内部调用“&lt;ANDROID_SDK&gt;/sdk/tools/ant/uibuild.xml”来构建项目并创建最终的 jar。默认情况下,此“uibuild.xml”中的“compile”目标不包含用于 jar 的“classpath”。正如其他几个 StackOverflow 问题/答案中提到的那样,这似乎是 Android 的错误。

      对我有用的解决方案:

      1. 在与“src”目录相同的级别创建“libs”目录,并将外部 jar 放入“libs”目录。 注意:这只是一个好习惯。理想情况下,您可以为“libs”目录指定任何名称并将其放在您想要的任何位置。

      2. 将“classpath”属性添加到&lt;ANDROID_SDK&gt;/sdk/tools/ant/uibuild.xml 中的“compile”目标。

      <classpath>
         <fileset dir="${jar.libs.dir}" includes="*.jar" /> <!-- path to 'libs' -->
      </classpath>
      

      请注意:虽然上述解决方案可以编译和构建我的项目,但我仍然无法在 Android 设备上运行它,因为 Android 设备没有 Twilio API jar。我正在寻找使用 Twilio jar/classes 构建最终项目 jar 的方法。 java.lang.ClassNotFoundException for package com.twilio.sdk

      问候,

      鲁米特

      【讨论】:

        猜你喜欢
        • 2013-10-13
        • 2012-02-29
        • 2015-05-07
        • 2017-08-30
        • 2020-05-23
        • 2019-01-21
        • 2023-03-08
        • 1970-01-01
        相关资源
        最近更新 更多