对于那些想要隔离Java并给它快速测试的时候..
您可以像在Eclipse中一样在Android Studio中运行非Android Java项目吗?
如何使用新的Gradle构建系统为Android项目生成JavaDoc?
这是我提出的,但它不起作用.
task generateJavadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
ext.cp = android.libraryVariants.collect { variant ->
variant.javaCompile.classpath.files
}
classpath = files(ext.cp)
}
Run Code Online (Sandbox Code Playgroud)
主要问题是我没有在类路径上获得相应的android.jar,因此JavaDocs中的某些链接无法解析.我必须找到一种方法来获取类路径上所有必需的jar.
我采用的方法的另一个问题是它收集所有构建变体的类路径,而不是选择一个.
我想从Android库项目中创建一个Jar.它设置如下:
ProjectName
\- lib
| \- lib
| \- armeabi
| \- libNativeFirst.so
| \- libNativeSecond.so
\- src
\- main
\- java
\- com.package.sdk
\- PackageSDK.java
Run Code Online (Sandbox Code Playgroud)
我希望所有这些都打包在一个Jar中,但不会泄露存在的源代码PackageSDK.java.
我这样设置我的build.gradle文件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir 'src/../lib'
}
}
} …Run Code Online (Sandbox Code Playgroud) 我有一个项目,使用一些其他库项目(SlidingMenu,ActionbarSherlock),这两个使用Android支持库,在构建时我得到以下内容:
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/LoaderManager;
at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
at com.android.dx.command.dexer.Main.processClass(Main.java:490)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
at com.android.dx.command.dexer.Main.access$400(Main.java:67)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:398)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
at com.android.dx.command.dexer.Main.processOne(Main.java:422)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:333)
at com.android.dx.command.dexer.Main.run(Main.java:209)
at com.android.dx.command.dexer.Main.main(Main.java:174)
at com.android.dx.command.Main.main(Main.java:91)
Run Code Online (Sandbox Code Playgroud)
两个库项目都依赖于支持lib:
dependencies {
compile files('libs/android-support-v4.jar')
}
Run Code Online (Sandbox Code Playgroud) 我想创建和 android 项目让我们说 MyApplication。
MyApplication 有一个活动 MyActivity.java。
我想要一些其他应用程序让我们说 NotMyApplication 来启动此活动,而无需在设备上安装 MyApplication。
我想为这个场景做的是我想以某种方式将 MyApplication 转换为 jar/lib,这样我就不需要安装也不需要共享代码。
并在 NotMyApplication 中导入 MyActivity.java 并创建一个如下所示的意图:
**Intent in = new Intent(MyActivity.class,NotMyActivity.this);
startActivity(in);**
Run Code Online (Sandbox Code Playgroud)
我怎样才能完成整个过程。有人可以指导 Stepwise for android studio 吗??
[编辑]
我在 Eclipse 中创建了 Jar 文件,然后将其复制到 android studio 中的 libs 文件夹中。比在 gradle 中添加 complie 语句:将 jar 导入为:
导入 com.example.testmylibs.MyClassToTest;
比发起的活动为:
Intent in = new Intent(getApplicationContext(),com.example.testmylibs.MyClassToTest.class); 开始活动(在);
它仍然给 FATAL 为:
android.content.ActivityNotFoundException:无法找到显式活动类 {com.myapplication/com.example.testmylibs.MyClassToTest};您是否在 AndroidManifest.xml 中声明了此活动?
[编辑]
如果我在 NotMyApplication 的 AndroidManifest.xml 中本地声明为:
**<activity android:name="com.example.testmylibs.MyClassToTest" >
</activity>**
Run Code Online (Sandbox Code Playgroud)
比以下异常来了:
java.lang.NoClassDefFoundError:解析失败:Lcom/example/testmylibs/R$layout;. . 引起:java.lang.ClassNotFoundException:在路径上找不到类“com.example.testmylibs.R$layout”:DexPathList[[zip file“/data/app/com.myapplication-2/base.apk”] …