Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml

转载地址:

https://blog.csdn.net/fesdgasdgasdg/article/details/76560341

1. 在Android Studio离线加载jar包?

方法一:将jar拷贝到app中的libs,右键add as library,选择module模块,然后在你的module 的gradle文件中会自动增加上依赖的那句话,比如: 离线加载std_msgs-0.5.11.jar

implementation files('libs/std_msgs-0.5.11.jar')//离线加载本地jar

方法二:能在线加载库, 能离线加载 jar包,能离线加载含有源码的module。

看一下如何在线加载库

先找到右上角“搜索“,左边那个按钮     ,点击进去


比如选择:“Library dependency”, 输入“android_core“, 回车

选择某一个源,然后就能看到加进来了


同时,module 的build.gradle多了一行

implementation 'com.google.zxing:android-core:3.3.0'

但是突然发现这么在线加载 android_core ,有问题,RosActivity 这些识别不出来,晕, 

如何在线加载 android_core的maven repository, 以及???

答: 

在线加载android_core

A. project 的build.gradle,即顶层的build.gradle文件添加maven repository

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        jcenter()

        maven {
            url "https://github.com/rosjava/rosjava_mvn_repo/raw/master"
        }
        mavenLocal()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        google()
        jcenter()

        maven {
            url "https://github.com/rosjava/rosjava_mvn_repo/raw/master"
        }
        mavenLocal()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

B. module 的build.gradle 添加:加载 android_10 和android_15其中任何一个都可以

implementation 'org.ros.android_core:android_10:[0.2,0.3)'
//implementation 'org.ros.android_core:android_15:[0.2,0.3)'
implementation 'org.ros.android_core:android_tutorial_pubsub:[0.2,0.3)'

其中android_10 和android_15 里面都是 aar包,也就是说在线加载jar包和aar包,都是需要 maven repository 和 implementation


如何离线加载 android_core?

因为android_core是 aar包,所以是按照离线加载aar包的方式实现。

同样,还是拷贝到app的libs下。然后在module 的build.gradle中配置如下

//指定在libs目录下的文件
repositories {
     flatDir {
      dirs 'libs'
     }
}
//添加依赖
dependencies {
    compile(name: 'aar的名字', ext: 'aar')
}
加载完,rebuild 时,可能会遇到类似错误

Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml

解决方法:https://blog.csdn.net/code_bird/article/details/51803533





由于我们刚开时 在 /libs 下 把离线的jar包,拷贝到该目录,且把该jar包 “ add  as library, 让系统识别出来。虽然在 build.gradle  中 屏蔽了该句 

//implementation files('libs/std_msgs-0.5.11.jar')//离线加载本地jar

,不知道是因为没有先clean, 再rebuild的原因还是什么,导致出现如下错误:

AGPBI: {"kind":"error","text":"Program type already present: std_msgs.Bool", 

解决办法:https://blog.csdn.net/susan8888/article/details/51518119

一般来说是,jar包引用重复导致的。
1.在project structure中去掉重复的jar包,
2.如果你的jar包是放到了libs目录中,且在gradle中发现了如下代码:
compile fileTree(include: ['*.jar'], dir: 'libs')
则注释掉即可。

所以 删除本地jar包, 屏蔽

//implementation files('libs/std_msgs-0.5.11.jar')//离线加载本地jar

然后再clean,再rebuild,就可以了。

3. 如何生成 jar包, aar包?



4.补充: 如何引入第三方项目,比如在github上直接下载下来的有源码的别人的项目

①首先将第三方项目作为Module导入到我们的项目中,具体就是: 

这里写图片描述 
②导入之后,需要我们在项目的Gradle的dependencies{}下添加:
implementation project(':这里为第三方项目名称')




猜你喜欢

转载自blog.csdn.net/u011722133/article/details/79996390
今日推荐