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