【问题标题】:Can I create a java class which can be used for all projects in Android Studio?我可以创建一个可用于 Android Studio 中所有项目的 java 类吗?
【发布时间】:2021-03-27 12:21:32
【问题描述】:

我想创建一个简单的 Java 类文件并从我的所有项目中访问它。

我知道我可以通过复制/粘贴方法来做到这一点,但在这种情况下,类文件将独立于其原始源。我在原始类文件中所做的任何更改都不会影响已复制到其他项目中的更改。

有没有办法在 Android Studio 中链接一个类文件?

【问题讨论】:

  • 看看创建一个 Android 库。那里有很多文档。

标签: java android shared-libraries


【解决方案1】:

要在您的项目中创建新的库模块,请执行以下操作:

Click File > New > New Module.
In the Create New Module window that appears, click Android Library, then click Next.

There's also an option to create a Java Library, which builds a traditional JAR file. While a JAR file is useful for many projects— especially when you want to share code with other platforms—it does not allow you to include Android resources or manifest files, which is very useful for code reuse in Android projects. So this guide focuses on creating Android libraries.
Give your library a name and select a minimum SDK version for the code in the library, then click Finish.

Gradle 项目同步完成后,库模块会出现在左侧的“项目”面板中。如果您没有看到新的模块文件夹,请确保它显示的是 Android 视图。

在这里更深入地了解https://developer.android.com/studio/projects/android-library

//编辑

创建项目
创建新项目
基本活动
下一个
名称:HelloWorld
包名:com.test.helloworld
API:16
语言:JAVA

更改了 activity_main.xml 以显示居中文本

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/simpleTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Hello World"
        android:textSize="25sp" />
</RelativeLayout>

创建库模块
文件/新/新模块
安卓库
下一个
模块名称:库
开发工具包:16
语言:JAVA
完成
Gradle 正在自动同步

创建测试类
我知道我可以将此字符串设为静态,但 OP 请求了一个方法 请注意,我不小心在模块的测试包内创建了类。无法访问

package com.test.library;

public class Library {

    public static String getDisplayText(){
        return "it worked";
    }
}

将我的库添加到主项目
转到 settings.gradle 并确保它首先包含您的模块
包括“:图书馆”
包括 ':app'
这已经为我完成了

移到 app 模块的 build.gradle 并添加
在依赖项的顶部包含 project(":library")
我必须手动执行此操作
现在与 gradle 重新同步

访问课程
这是我的 MainActivity.java

package com.test.helloworld;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.widget.TextView;

import com.test.library.Library;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView simpleTextView = (TextView) findViewById(R.id.simpleTextView);
        simpleTextView.setText(Library.getDisplayText());

    }
}

它就像一个魅力。希望我能帮助你。会很高兴赞成投票

【讨论】:

  • 感谢您提供的信息。我已经导入了我的模块,我可以在我的项目树中看到它作为一个单独的文件夹。现在的问题是,如何访问 import3d 模块的类文件中的方法?我的模块的类文件中有许多静态方法,当我单击该类时可以看到所有这些方法,但无法从项目树中的主项目访问它。
  • 您是否遵循了全部说明?您是否将模块添加为依赖项
  • 是的,当然。也许问题是我不知道访问 Java 类中方法的正确语法,该类在项目树中不在同一范围内。我使用“classname.methodname”语法,但它不起作用。
  • 如果你的方法像你说的那样是静态的,那应该可以正常工作。我必须自己创建一个项目和一个库,因为我从未在 android 中做过。我晚上可能有时间看看它。添加依赖项后,请确保您的 gradle 正确同步。
  • 谢谢。确实很欣赏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-25
  • 1970-01-01
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多