我正在尝试在我的BOOT_COMPLETED接收器中启动一个IntentService,但在Android O(API 26)中,我得到:
java.lang.RuntimeException:
java.lang.IllegalStateException:
Not allowed to start service Intent { act=intent.action.update cmp=packageName.services.OwnService }:
app is in background
Run Code Online (Sandbox Code Playgroud)
(消息在一行中,但这样更易读)
我怎么能以正确的方式做到这一点?
android bootcompleted android-broadcastreceiver android-8.0-oreo
我有gradle(Android Studio)4种构建类型
android {
buildTypes {
release { ... }
debug { ... }
kindle { ... }
kindle_debug { ... }
}
}
Run Code Online (Sandbox Code Playgroud)
我知道,我的src文件夹可以为每个构建类型提供一个文件夹.所以它最终成了
src/
-- debug
-- kindle
-- kindle_debug
-- main // used for every project
-- release
Run Code Online (Sandbox Code Playgroud)
目前kindle是相同的release,kindle_debug也是一样的debug.
如何避免复制src文件夹?有没有办法继承release和/ debug或让我自己在build.gradle文件中设置src文件夹?
编辑:一个似乎有效的解决方案是设置符号链接,但我想使用Mac OS和Windows操作系统,而不是每个新用户都希望自己设置符号链接.
编辑2:我现在使用产品口味,因此,我可以调试/发布和谷歌,亚马逊和三星.这是我的最佳解决方案.
我TimePicker对API 21上的小部件有一个问题.在API 19之前,这TimePicker是一个像iOS这样的上/下列表,但在21+中它是圆形的,就像日历应用程序中的那样.
我如何使用21+中的旧版本,因为如果它是新的小部件,它会破坏我的设计.
我正在使用buildTypes和productFlavors.我的应用程序也使用分析工具,此工具使用我的应用程序的versionName.
如何更改每种风格的versionName?我的考试是
productFlavors {
google {
versionNameSuffix ".google"
}
}
Run Code Online (Sandbox Code Playgroud)
但它失败了.有没有人知道如何根据风味自定义versionName?
更新
显然,2.2.0摇篮Android插件的版本现在允许设置versionNameSuffix在productFlavors
有人可以解释这些类型的Android gradle任务之间的主要区别吗?
- check - 运行所有检查.
- connectedAndroidTest - 在连接的设备上安装并运行Build'debug'的测试.
- connectedCheck - 在当前连接的设备上运行所有设备检查.
- deviceCheck - 使用设备提供程序和测试服务器运行所有设备检查.
例如,如果我跑connectedAndroidTest和connectedCheck,似乎一切都将是相同的- >我的测试类被称为(设备或仿真器上).
是否有使用com.google.android.feedback.FeedbackActivity的示例,就像在Google+应用中使用它发送任何反馈一样?
我试着用它开始
Intent intent = new Intent();
intent.setClassName("com.google.android.feedback", "com.google.android.feedback.FeedbackActivity");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
但我只能得到
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.google.android.feedback/com.google.android.feedback.FeedbackActivity}: java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud) 我使用Charles检查将我的应用程序发送到HTTPS的数据.我在手机上安装了Charles CA证书,因此,我能够解密每个SSL流量.
但我找到了应用程序,我无法看到SSL流量.如何将此行为实现到我自己的应用程序中?有了这个,没有人可以进行中间攻击.
我正在为我的应用程序使用支持库21.我的主题也在值-v21中定义,但DatePickerDialog不使用强调颜色作为背景和文本颜色.
如何将此颜色更改为强调色?
我目前的themes.xml是
值/的themes.xml
<style name="AppTheme" parent="AppTheme.Base" />
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionModeOverlay">true</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud)
值-V21 /的themes.xml
<style name="AppTheme" parent="AppTheme.Base">
<item name="android:colorPrimary">@color/colorPrimary</item>
<item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="android:colorAccent">@color/colorAccent</item>
<item name="android:alertDialogTheme">@style/AppTheme.AlertDialog</item>
</style>
<style name="AppTheme.AlertDialog" parent="android:Theme.Material.Light.Dialog.Alert">
<item name="android:colorPrimary">@color/colorPrimary</item>
<item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="android:colorAccent">@color/colorAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud) 如何使用预览2更新我的Android Things预览1?是否有自动OTA可用或者现在不可能这样,所以我必须刷SD卡(来自我的Raspberry Pi)?
我有两个Android项目,一个共享库和应用程序.现在我想编译依赖于库的应用程序.在Eclipse中,它运行良好.之后,我通过git将其上传到我的存储库并触发Jenkins构建这两个项目.
我的问题是,发生错误:"sdk/android-sdk-linux/tools/ant/build.xml:440:../ shared -lib解析为没有project.properties文件的路径".这很清楚,因为在Jenkins中,作业的存储与Eclipse不同.
另一个问题是,Eclipse将共享编译为".jar",Ant将其编译为"classes.jar"(在sdk/android-sdk-linux/tools/ant/build.xml中命名).