【问题标题】:How Import android.graphics.Bitmap in jar file如何在jar文件中导入android.graphics.Bitmap
【发布时间】:2017-10-07 19:30:16
【问题描述】:

我知道 Jar 和 AAR 之间的主要区别在于 AAR 包含布局、可绘制对象等资源。我想创建一个包含 Bitmap 类的 Jar 文件。这可能吗?

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.widget.ImageView;

当我在 Jar File Android Studio 的类中导入 andorid.graphics.Bitmap 显示错误:无法解析符号 'Bitmap'、'BitmapFactory' 'Context' 和 ..

我按照以下步骤构建 Jar 文件:

文件 > 新建 > 新模块 > java 库

我知道如何使用该库,并且我知道 AAR 中可用的诸如 Bitmap 之类的 andorid api 类(也在 AAR 文件中可用的资源文件中) 我的问题是在 JAR 文件中使用 android api 类。

【问题讨论】:

  • android.graphics.Bitmap 是一个 Android 框架类。 JAR 和 AAR 都不会“包含”它。 “包含 Bitmap 类”是什么意思?
  • 您可以只使用自己的类创建您的 jar,这些类可能使用 Bitmap 或任何 Android API 类。
  • @CommonsWare 表示当我在 jar 文件中的类中使用 android.graphics.Bitmap 时出现错误:无法解析符号“位图”
  • 添加import android.graphics.Bitmap,正如您在问题中所提到的那样。如果您无法从android 导入任何内容,那么您正在针对标准 JDK 而不是 Android 进行编译。通常,当我编写特定于 Android 的库时,我会创建一个 AAR 而不是 JAR,因为这些东西“开箱即用”。
  • @hamidrezahaajhoseini 看this,这是一个jar,在这个jar里面有一个class,它使用的是Android API的Context,也就是说你可以在jar里面使用Andoid API类跨度>

标签: java android jar aar


【解决方案1】:

您可以使用自己的类创建.jar,这些类可能使用Bitmap 或任何Android API 类。

这是一个文件BitmapHelper.java

package com.its.test;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

public class BitmapHelper {

    public static void getBitmap(String fileName){
        Bitmap bitmap= BitmapFactory.decodeFile(fileName);
    }
}

Jar 文件只是一个包含 .class 文件数量的 zip 文件,所以 BitmapHelper.class 文件在我的 .jar

当我们需要使用 .jar 时,只需将其添加到构建路径中即可编译。

或者在 gradle 项目中将你的 .jar 放在 libs 文件夹中并以这种方式编译

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

如果您将.jar 部署在本地/远程maven repo 或任何其他地方,您可以使用该工件的group nameartifactversion 进行编译。

Jar 和 AAR 之间的主要区别在于 AAR 包括 资源,例如布局,drawables等。这使它更容易 创建自包含的视觉组件。例如,如果您有 使用相同登录屏幕的多个应用程序,您可以使用 Jars 共享类但不共享布局、样式等,您仍然必须 复制它们。使用 AAR,所有东西都捆绑在一个整洁的包中。

编辑

Java 库与.jar 不同,库是 jar 的集合。您可以轻松地将.jars 集成到 android 项目中,但如果您想添加 Java 库,则需要在纯 java 库和 android 之间定义绑定。

你可以查看这个答案。

https://stackoverflow.com/a/42099343/3445320

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多