java-Android中用于调试构建的备用应用程序子类

java-Android中用于调试构建的备用应用程序子类,第1张

概述为了限制调试代码进入版本APK,我尝试使用DebugMyApplication子类进行调试版本,但使用发行版中的常规MyApplication类.是否可以在DebugvsRelease版本中使用备用Application子类?我试过了:>在src/debug的根目录中定义一个AndroidManifest.xml文件,并带有<application>元件.Grad

为了限制调试代码进入版本APK,我尝试使用DeBUGMyApplication子类进行调试版本,但使用发行版中的常规MyApplication类.

是否可以在DeBUG vs Release版本中使用备用Application子类?我试过了:

>在src / deBUG的根目录中定义一个AndroidManifest.xml文件,并带有< application>元件. Gradle警告我,Main清单具有X,而库具有Y,并且未使用DeBUGMyApplication.
>将应用程序子类的完全限定名称声明为可以在我的调试res文件中单独定义的资源,但< application androID:name =“ @ string / xyz” />被解释为原义软件包名称,而不是引用.

对于我的更广泛目标的一些背景:

提供一个备用Dagger模块,该模块提供一些静态的模拟Web服务响应,这些响应在发行版APK中找不到.子类化应用程序的getModuleList()方法并更改模块列表声明似乎是最好的选择.

谢谢你的帮助!

解决方法:

对于应用程序替代,我没有答案,但是我为您的更广泛的目标提出了一个解决方案:

|-- src|   +-- deBUG|       +-- java|           +-- mypackage|               +-- Modules.java|               +-- MockModule.java|   +-- main|       +-- java|           +-- mypackage|               +-- MainModule.java|   +-- release|       +-- java|           +-- mypackage|               +-- Modules.java

src /调试/java/mypackage/Modules.java

public final class Modules {  public static List<Object> getModules(App application) {    ArrayList<Object> modules = new ArrayList<Object>();    modules.add(new MainModule(application));    modules.add(new MockModule());    return modules;  }}

src /调试/java/mypackage/MockModule.java

@Module(    overrIDes = true,    library = true,    injects = { MainActivity.class })public class MockModule {  @ProvIDes MyType buildMock() {    return //...  }}

src /版本/java/mypackage/Modules.java

public final class Modules {  public static List<Object> getModules(App application) {    ArrayList<Object> modules = new ArrayList<Object>();    modules.add(new MainModule(application));    return modules;  }}

src / main / java / mypackage / App.java

public class App extends Application {  private ObjectGraph graph;  @OverrIDe public voID onCreate() {    super.onCreate();    graph = ObjectGraph.create(Modules.getModules(this).toArray());  }  public voID inject(Object object) {    graph.inject(object);  }}

请让我知道这对你有没有用.

杰克·沃顿(Jake Wharton)在他的Android Apps with Dagger演讲中介绍了这项技术

总结

以上是内存溢出为你收集整理的java-Android中用于调试构建的备用应用程序子类全部内容,希望文章能够帮你解决java-Android中用于调试构建的备用应用程序子类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1087915.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存