我最近下载了Android Studio来开发Android应用程序(我来自Eclipse),我在使用外部库和/或外部JAR文件以及我自己的项目时遇到了问题。 注意:以下测试是在Android Studio中从头创建的新应用程序项目上进行的。
示例1:JAR导入。
从Google下载Admobs SDK的最新副本。
将库jar GoogleAdMobAdsSdk-6.4.1.jar
复制到项目的/ libs /文件夹。
在项目浏览器中,右键单击新添加的library.jar,然后单击“Add as Library”。
从技术上讲,一切正常,导入工作正常,布局编辑器显示AdView
窗口小部件的预览以及所有这些。 唯一问题是它无法成功编译。
从控制台登录:
Gradle:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':APITests:compilePaidDebug'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Could not execute build using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.6-bin.zip'.
我尝试运行gradlew compileDebug --stacktrace
,问题似乎是尽管能够在代码和代码中成功导入类。设计编辑器,在编译时,它无法解析导入。以下是日志的相关部分:(full stacktrace here)
java:6: error: package com.google.ads does not exist
import com.google.ads.AdRequest;
java:7: error: package com.google.ads does not exist
import com.google.ads.AdView;
java:11: error: cannot find symbol
AdView mAdView;
symbol: class AdView
location: class MainActivity
java:22: error: cannot find symbol
mAdView = (AdView)this.findViewById(R.id.adView);
symbol: class AdView
location: class MainActivity
java:23: error: cannot find symbol
mAdView.loadAd(new AdRequest());
symbol: class AdRequest
location: class MainActivity
5 errors
:Test:compileDebug FAILED
但同样,导入在编辑器中运行良好,依赖性就在那里:
值得注意的是,如果不尝试添加库/ JAR,项目编译就可以了。
然后我尝试编辑build.gradle文件以包含新的lib,如下所示:
dependencies {
compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')
}
这一次,它确实编译成功,但是应用程序现在强制关闭,显然,它无法从应用程序包中的lib找到特定的类。
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.ads.AdView" on path: /data/app/com.foo.test-1.apk
有什么想法吗?
答案 0 :(得分:99)
所以,
要使用Android Studio 0.1.1将JAR导入您的项目,请遵循以下步骤:
compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')
'C:\Users\Username\AndroidStudioProjects\MyApplicationProject\'
gradlew clean
,等待它完成。 答案 1 :(得分:31)
您无需关闭项目并转到命令行来调用grade:clean。 转到Build->重建项目
答案 2 :(得分:16)
简单的方法,它适用于我。使用Android Studio 0.8.2。
答案 3 :(得分:13)
"简单的解决方案就在这里"
1.在app目录下创建一个名为 libs 的文件夹,以确定项目中的任何目录。
2. 将您的资料库粘贴到图书馆文件夹
3 .You simply copy the JAR to your libs/ directory and then from inside Android Studio, right click the Jar that shows up under libs/ > Add As Library..
和平!
答案 4 :(得分:10)
以下是我如何专门针对 admob sdk jar 文件:
jar
文件拖到libs文件夹中。jar
文件,然后选择添加库
现在jar文件是一个库,可以将它添加到编译路径build.gradle
文件(注意至少有两个build.gradle
文件,不要使用根文件使用项目范围内的文件)。找到依赖项部分(对我来说,我正在尝试使用admob -GoogleAdMobAdsSdk jar文件) e.g。
dependencies {
compile files('libs/android-support-v4.jar','libs/GoogleAdMobAdsSdk-6.3.1.jar')
}
最后进入settings.gradle
并确保它看起来像这样:
include ':yourproject', ':yourproject:libs:GoogleAdMobAdsSdk-6.3.1'
答案 5 :(得分:2)
从Eclipse导出项目然后从Android Studio导入项目,这应该可以解决您的问题,打开eclipse项目而不从Android Studio导入它可能会导致问题,请看: (请原谅我的语言,我会讲西班牙语。) http://developer.android.com/intl/es/sdk/installing/migrate.html
答案 6 :(得分:2)
我遇到的问题是无法在Android Studio的libs文件夹中加载jar文件。
如果您在libs文件夹中添加了JAR文件,则只需打开build.gradle
文件并保存即可,无需编辑任何其他内容。如果您已添加此行
compile fileTree(dir: 'libs', include: ['*.jar'])
保存并清理项目..在下一个构建时,Android Studio将加载JAR文件。
希望这有帮助。
答案 7 :(得分:1)
我正在使用Android Studio 0.5.2。因此,如果您的版本低于我的版本,我的答案可能不适合您。
为项目添加新Jar的3种方法:
将弹出“项目结构”窗口。
在左栏中点击“图书馆”,然后查看右侧窗格,其中有一个加号'+',然后点击它,然后输入新图书馆的路径。
确保新库位于“project \ libs \”文件夹下,否则在保存项目源代码时可能会出现断开的链接。
答案 8 :(得分:1)
我目前正在使用Android Studio 1.4。
为了导入和添加库,我使用了以下流程 - >
1. Press **Alt+Ctr+Shift+S** or Go to **File --> Project** Structure to open up the Project Structure Dialog Box.
2. Click on **Modules** to which you want to link the JAR to and Go to the Dependency Tab.
3. Click on "**+**" Button to pop up Choose Library Dependency.
4. Search/Select the dependency and rebuild the project.
我使用上述方法导入支持v4和v13库。
我希望这有用并清除流程。
答案 9 :(得分:0)
我使用android studio 0.8.6并在项目中导入外部库,将该库粘贴到libs文件夹中,并在内部build.gradle写入路径内的依赖关系这样的库 编译文件('libs / google-play-services.jar')
答案 10 :(得分:0)
答案 11 :(得分:-2)
检查libs版本要求。 lib可能试图从更高的Android版本调用方法。尝试添加apps compatability libs。
当所有其他方法都失败时,尝试从Gradle构建切换到Eclipse构建。
将文件夹删除并重新构建为eclipse样式,并删除除代码之外的所有内容。然后用你的lib重新加载项目。
一旦运行,如果您愿意,请返回Gradle。