Android N Developer预览版引入了一项名为Android Instant Apps的新功能.
我阅读了有关此主题的基本信息,以下是我的理解:
Android Instant Apps使Android应用程序能够立即运行,而无需安装全面的应用程序.这意味着假设用户从搜索,社交媒体,消息或其他深层链接中发现了应用程序,他们可以直接访问Activity属于此应用程序,并使用应用程序中的功能,无需Google Play store单击安装应用程序等,从而绕过应用程序安装流程.
但是,假设Activity通过Instant应用程序安装哪个需要Dangerous权限才能运行,何时会被调用?
基本上,如何在Android即时应用程序中处理Android运行时权限?
今天我陷入一个奇怪的问题,我的应用程序突然停止在我的USB插入设备上工作.但是它可以在其他真实设备和模拟器设备上正常运行.
屏幕上的错误对话框正常:不幸的是"您的应用名称"已停止.
要获取错误消息,我在调试模式下运行我的应用程序并看到:
FATAL EXCEPTION: main
Process: com.yourapp.packagename, PID: 20036
java.lang.RuntimeException: Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication: java.lang.IllegalStateException: java.lang.ClassNotFoundException: android.support.multidex.MultiDexApplication
at android.app.LoadedApk.makeApplication(LoadedApk.java:676)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6294)
at android.app.ActivityThread.access$1800(ActivityThread.java:222)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1861)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7229)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.IllegalStateException: java.lang.ClassNotFoundException: android.support.multidex.MultiDexApplication
at com.android.tools.fd.runtime.BootstrapApplication.createRealApplication(BootstrapApplication.java:220)
at com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext(BootstrapApplication.java:239)
at android.app.Application.attach(Application.java:211)
at android.app.Instrumentation.newApplication(Instrumentation.java:1020)
at android.app.Instrumentation.newApplication(Instrumentation.java:1004)
at android.app.LoadedApk.makeApplication(LoadedApk.java:666)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6294)
at android.app.ActivityThread.access$1800(ActivityThread.java:222)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1861)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7229)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.ClassNotFoundException: android.support.multidex.MultiDexApplication …Run Code Online (Sandbox Code Playgroud) 我正在努力将侦听器包装到Observables中。通常,我们使用Observable.create()自动换行,但是有些库更喜欢使用自定义Observable并将其换行,例如RxBinding,甚至RxJava本身(根据我的理解,operators基本上都是创建新的Custom Observable来在其中进行操作)。
所以我的问题是:我们可以从Custom Observable获得什么好处?它的开销仅比Observable.create()因为我们没有生成另一个ObservableCreate要覆盖的开销而要低ObservableSource。
将现有的库包装为Rx样式(例如:Firebase)时应该使用哪一个?
在Google IO 2017上,有一个在启动器中搜索应用名称并启动即时应用的演示.我的即时应用程序如何成为发射器的一部分?
我的android项目结构如下
当我尝试使用 api 或实现将本地库项目包含在基本功能模块中时,该功能要么由于找不到资源而无法编译,要么在运行时抛出相同的错误。现在我想知道我是否误解了一点。文档说基本功能模块旨在共享公共代码和资源,但似乎它不涵盖库案例。
当我尝试在功能模块中包含相同的库时,会引发运行时资源未找到错误。
如何用新旗开始活动?我有2个活动.一个是主要的,另一个用于显示数据库ListView.它由地址和(纬度,经度)值组成.我正在尝试每当我点击一个项目控件时应该转到主要活动并在地图上显示那个(纬度,经度)值.我在一个包中传递了(纬度,经度)值并写了一个set()主活动来设置(lat,lon)值.但主要活动是在后台运行.我在第二个活动中的代码是:
Intent i1=new Intent(Display.this,Cortes.class);
Bundle b11=new Bundle();
b11.putDouble(q, b1);
b11.putDouble(r, c1);
//b11.putBoolean("flag", flag);
i1.putExtras(b11);
i1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i1);
Run Code Online (Sandbox Code Playgroud)
这里b1,c1是(纬度,经度)值并且Cortes是主要活动并且Display是第二活动.我在主要活动中的代码是:
public void set()
{
bun=getIntent().getExtras();
q=bun.getDouble("q");
r=bun.getDouble("r");
GeoPoint new1=new GeoPoint((int)(q*1000000), (int)(r*10000000));
mc.setCenter(new1);
mapOverlays = mv.getOverlays();
OverlayItem overlayitem = new OverlayItem(new1, "New", "test1");
itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
mc.animateTo(new1);
mv.setSatellite(false);
mc.setCenter(new1);
mv.postInvalidate();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法set()从第二次活动打电话?或者,当从第二个活动调用主要活动时,我该如何调用它?另外,我想用新标志开始主要活动.
我一直在使用Cygwin使用NDK的ndk-build脚本和Cygwin的make工具来构建我的Android库.它开始给我一些拉丁非英语字符的错误.将文本复制到Google时,它被粘贴为希伯来语(我可以阅读).有没有办法强迫它输出英文错误?知道为什么会这样吗?