小编Nim*_*yan的帖子

Gradle Maven插件"安装"任务不适用于Android库项目

我想将android库项目安装到本地maven存储库.这是build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android-library'
apply plugin: 'maven'

version = "1.0.0-SNAPSHOT"
group = "com.example"

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 18
    }
}
Run Code Online (Sandbox Code Playgroud)

当我跑:

gradle install -i
Run Code Online (Sandbox Code Playgroud)

它被困在这里:

Executing task ':project:installTest' due to:
  Task has not declared any outputs.
Starting process 'command 'd:\android-sdk-windows\platform-tools\adb.exe''. Working directory: D:\Projects\java\....... Command: d:\android-sdk-windows\platform-tools\adb.exe install -r D:\Projects\java\.......\build\apk\project.apk
An attempt to initialize for well behaving …
Run Code Online (Sandbox Code Playgroud)

java android install gradle maven

32
推荐指数
4
解决办法
2万
查看次数

Android Gradle构建失败:找不到com.google.android:support-v4:r18

编辑:

这个问题似乎以某种方式消失了,可能是由于新的Gradle构建系统变得更加成熟.

我有两个独立的Android项目:

第一个项目是使用Gradle的'android-library'插件的Android库,它取决于support-library-v4:r18.来自build.gradle中的依赖项片段:

compile 'com.android.support:support-v4:18.0.0'
Run Code Online (Sandbox Code Playgroud)

从支持库是牵强的Android支持库通过安装的Android SDK管理器作为解释在这里.然后通过运行以下内容构建该项目并将其发布到maven本地存储库:gradle uploadArchives

我验证了,然后库.aar随后在本地maven存储库下可用.

第二个项目是一个Android应用程序,使用Gradle的'android'插件,它引用第一个项目生成的库的maven依赖.这是build.gradle的一个片段:

repositories {
    mavenLocal()
    mavenCentral()
}
dependencies {
    compile 'com.android.support:support-v4:18.0.0'
    compile 'com.example:cool-lib:1.0.0-SNAPSHOT'
}
Run Code Online (Sandbox Code Playgroud)

注意:这两个项目完全分开.这意味着,它们不是同一个根项目的子项目.

当我尝试通过运行来构建第二个项目时: gradle assemble

我收到以下错误:

Could not find com.google.android:support-v4:r18.
Required by:
    com.example:app-project:unspecified > com.example:cool-lib:1.0.0-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)

我在我的本地maven repo文件夹下检查了cool-lib.pom文件,我发现它有以下依赖项:

<dependency>
  <groupId>com.android.support</groupId>
  <artifactId>support-v4</artifactId>
  <version>18.0.0</version>
  <scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

出于某种原因,Gradle试图从maven中央存储库获取lib-project支持库-v4 r18 …

android build gradle maven android-support-library

20
推荐指数
2
解决办法
2万
查看次数

Android NDK和Gradle:每种构建类型不同的Android.mk

我的本机库包含我想在编译时删除的日志.日志由限定所述预处理器宏所示ENABLE_DEBUGLOCAL_CFLAGS像这样:

include $(CLEAR_VARS)
LOCAL_MODULE    := native-stuff
LOCAL_SRC_FILES := Native.cpp
LOCAL_LDLIBS := -llog
LOCAL_CFLAGS := -DENABLE_DEBUG
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

我正在通过Android Studio使用Gradle构建应用程序,我希望有另一个Android.mk文件,不需要LOCAL_CFLAGS := -DENABLE_DEBUG发布版本,有效地禁用日志记录.

我尝试通过创建下面的文件夹并在没有CFLAGS的情况release/jnisrc放置Android.mk的副本来实现.它成功构建和部署,但我仍然看到日志.这是我的build.gradle:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }

    sourceSets {
        main {
            //Tell Gradle where to put the compiled shared library
            jniLibs.srcDir 'src/main/libs'

            //disable automatic ndk-build call
            jni.srcDirs = [];
        }
        release {
            jni.srcDirs …
Run Code Online (Sandbox Code Playgroud)

java-native-interface android android-ndk android-studio android-gradle-plugin

5
推荐指数
1
解决办法
3356
查看次数

如何使JAXB unmarshaller忽略前缀?

我有以下XML:

<ns2:Person name="John" age="20" />
Run Code Online (Sandbox Code Playgroud)

我想将它解组为从XSD生成的JAXB对象Person.

这是我正在运行的代码:

JAXBContext context = JAXBContext.newInstance(PersoEntity.class);
Unmarshaller um = context.createUnmarshaller();
StringReader sr = new StringReader(xml);
Person p = (Person)um.unmarshal(sr);
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是我得到以下异常:

javax.xml.bind.UnmarshalException
 - with linked exception:
[org.xml.sax.SAXParseException: The prefix "ns2" for element "ns2:Person" is not bound.]
Run Code Online (Sandbox Code Playgroud)

我该如何解决?谢谢

namespaces jaxb prefix unmarshalling

4
推荐指数
1
解决办法
2万
查看次数