Java 访问不同包中的继承子类

Java 访问不同包中的继承子类,java,android,oop,inheritance,android-library,Java,Android,Oop,Inheritance,Android Library,这会抛出一个错误B=新B; 我不确定这里的问题是什么,这应该可以正常工作,对吗 我正在构建一个库,从依赖库类扩展一个类。现在我正在使用我在应用程序中构建的库,当我尝试访问继承的类时,它会抛出一个错误 我在正在构建的库中添加了依赖项库,如下所示 实现“:dependencyLibrary” 在应用程序中使用我的库 包括“:mylibraryName” 实施项目“:mylibraryName” 我只是不希望应用程序可以访问“dependencyLibrary”您看到此错误,因为您尚未将库链接到当前项

这会抛出一个错误B=新B; 我不确定这里的问题是什么,这应该可以正常工作,对吗

我正在构建一个库,从依赖库类扩展一个类。现在我正在使用我在应用程序中构建的库,当我尝试访问继承的类时,它会抛出一个错误

我在正在构建的库中添加了依赖项库,如下所示

实现“:dependencyLibrary”

在应用程序中使用我的库

包括“:mylibraryName” 实施项目“:mylibraryName”


我只是不希望应用程序可以访问“dependencyLibrary”

您看到此错误,因为您尚未将库链接到当前项目。 您需要将库项目链接到当前项目,以便import语句能够工作

一种方法是:

转到文件->新建->导入模块-> 添加库以将节包括在settings.gradle文件中,并 同步项目之后,您可以看到带有库的新文件夹 名称添加到项目结构中 包括“:mylibraryName”

转到文件->项目结构->应用->依赖项选项卡->单击 加号按钮

列表项

选择模块依赖项->选择您的库名称应该包含的库 出现在那里并将范围放在编译或实现中

加上这个 依赖项部分应用程序级模块中build.gradle中的行
你应该提到抛出的确切异常,以帮助他人帮助你。表示无法访问类。你给出的示例效果很好。请检查您的目录结构,以确保您的文件位于正确的目录中。这与继承问题无关。它是关于访问类而不包括dependencyLibrary。在android中,当您从库中生成aar时,它不会包含“库”中包含的依赖模块的源。有两种方法可以做到这一点。第一个是,您可以生成fat aar,它既有库的源代码,也有依赖库的源代码。第二个是,你们必须在应用程序中包括dependencyLibrary和你们的库。没有这两种方法是绝对不可能做到的。我已经做到了。我在我正在构建的库>实现中添加了依赖项库,如下所示:dependencyLibrary“在应用程序中使用我的库>包括”:mylibraryName'>实现项目”:mylibraryName“我只是不希望应用程序可以访问“dependencyLibrary”
package 1; // this is a dependency library

public class A{

public String getName(){
return "In func getName, class A";
}

}

-------------------------------------------
package 2; // this is the library which I am building
import 1;

public class B extends A{

}

----------------------------------------------
package 3; // this is the app which is using the library which I am building
import 2;

public class C {

B b = new B(); // throws error here, says "Cannot access A"
b.getName();
}
implementation project(':mylibraryName')