自Android Studio 2.0及其重新设计的"构建/运行"机制以来,我无法再在第二台设备上"启动"APK.在第一台设备上加载APK后,我无法选择将构建版本发送到其他设备.
"运行"将以当前设备为目标"重新运行"将停止当前设备上运行的应用程序并将其上载到"第二"设备.
所以我的问题是:"如何在不终止第一个流程的情况下,针对与我构建的第一个设备不同的设备启动"第二个"构建?"
抱歉我的英语不好,这不是我的母语.
我想改进"注释选项"(右键单击代码行号冒号 - >注释),这类似于git blame(但集成到IntelliJ).
1 /有可能吗?(通过插件或IntelliJ文件的原始修改?还有什么?)
2 /我在Android Studio上(基于IntelliJ),这会是一个问题吗?
3 /如果1 /&2 /为真,那么有关如何启动的提示?
PS:我的目标不是在annonate中显示一些提交(如"重新格式化"),因为它们不提供有关代码历史的重要信息.
我的目标是在应用程序中播放 Youtube 视频。
Exoplayer 看起来不错,但他们的大部分文档都已损坏(链接),对于一个非常简单的任务来说非常复杂,并且不提供工作演示(他们的演示崩溃了......)。此外,他们没有解释如何正确获取 YouTube URL 的 DASH。
那么,有没有一种方法可以让 Exoplayer 轻松工作并获取任何 YouTube 链接的 DASH 信息,例如https://www.youtube.com/watch?v=yFAnn2j4iB0 )的 DASH 信息?
我使用http://www.youtube.com/get_video_info?&video_id=yFAnn2j4iB0,解码后我得到这个DASH url:https://manifest.googlevideo.com/api/manifest/dash/ms/au/nh/IgpwcjAxLnBhcjAxKgkxMjcuMC4wLjE/mv/m/source/youtube/requiressl/yes/ip/165.225.76.70/fexp/3300108,3300130,3300161,3313267,9419451,9422596,9424135,9425619,9426788,9428398,9431012,9431719,9433096,9433223,9433946,9435526,9438327,9438662,9439580,9441225,9441737,9442156,9442424,9442426,9442680,9443322,9443345,9443768,9443913,9444207,9445344/ipbits/0/as/fmp4_audio_clear,webm_audio_clear,webm2_audio_clear,fmp4_sd_hd_clear,webm2_sd_hd_clear/sparams/as,hfr,id,initcwndbps,ip,ipbits,itag,mm,mn,ms,mv,nh,pl,playback_host,requiressl,source,expire/pl/23/id/c850279f68f8881d/mn/sn-25g7snee/mm/31/hfr/1/playback_host/r18---sn-25g7snee.googlevideo.com/itag/0/mt/1471872416/sver/3/key/yt6/initcwndbps/9365000/expire/1471894709/upn/w1CO218TeQA/s/11395DF1FE7737DA54826F38EE1C61D28B46619DC.9724AB654EE916E8B5C5F687BE3504E4799BA939933
但它不会在 Exoplayer 演示中开始抛光。这个 DASH 正确吗?你们有人在他们的应用程序中使用 ExoPlayer 吗?
到目前为止我找到的文档:
How to play youtube video in ExoPlayer in Android?
https://github.com/google/ExoPlayer/tree/release-v1/demo_ext(但它崩溃了><)
我对此感到很好奇,为什么Kotlin设计师会认为这是删除Kotlin中显式输入的好主意?
对我来说,显式键入并不是用Java(或任何其他强类型语言)编写的“痛点”:所有IDE都可以帮助我自动键入变量。
它增加了对代码的理解(这就是为什么我不喜欢弱类型的语言,我不知道我正在处理哪种变量的原因)。
另外,这是我的主要问题,它使代码更易于出错。
例子:
Java:很容易识别为字符串,一切都很好
String myPrice = someRepository.getPrice(); // Returns a String
myTextView.setText(myPrice);
Run Code Online (Sandbox Code Playgroud)
Java:很容易被识别为int,带有代码味道 setText()
int myPrice = someRepository.getPrice(); // Returns an int, code smell !!
myTextView.setText(String.valueOf(myPrice)); // Problem avoided
Run Code Online (Sandbox Code Playgroud)
科特林:????
val myPrice = someRepository.getPrice(); // What does it return ?
myTextView.setText(myPrice); // Possible hidden bug with setText(@StringRes int) instead of setText(String) !!
Run Code Online (Sandbox Code Playgroud)
在Kotlin imo中,没有明确的键入是Kotlin的最大缺点。我试图了解这种设计选择。
我并不是真正在寻找“补丁”来修复示例/避免出现代码的味道,我试图了解删除显式键入背后的主要原因。它必须不仅仅是“减少键入/更易于阅读”。它只删除了几个字符(一个字符仍然必须写val/ var),并且在Kotlin中进行显式键入仍然会添加一些字符。
在我看来,没有显式类型的静态类型是处理隐藏的bug /意大利面条错误的最坏情况:如果一个类(例如“存储库”)更改了它的返回类型(例如从String到int)。使用显式输入时,编译将在调用“存储库”的类上失败。如果没有显式键入,则编译可能不会失败,并且错误类型的变量可能会“遍历”类,并由于其类型而改变类的行为。这是危险的,未被发现。
修复很简单; 明确键入变量。但是,这就是我们所说的Kotlin,是一种面向代码高尔夫球手的语言:人们不会显式地键入变量,因为在kotlin中,这样做比用turtle-java花费更多的时间。kes!
当我消耗端点时,我试图得到这种答案:
[
{
"McqID":"7EED5396-9151-4E3D-BCBF-FDB72CDD22B7",
"Questions":[
{
"QuestionId":"C8440686-531D-4099-89E9-014CAF9ED054",
"Question":"human text",
"Difficulty":3,
"Answers":[
{
"AnswerId":"7530DCF4-B2D9-48B0-9978-0E4690EA0C34",
"Answer":"human text2",
"IsTrue":false
},
{
"AnswerId":"5D16F17F-E205-42A5-873A-1A367924C182",
"Answer":"human text3",
"IsTrue":false
},
{
"AnswerId":"64E78326-77C3-4628-B9E3-2E8614D63632",
"Answer":"human text4",
"IsTrue":false
},
{
"AnswerId":"199241A9-0EF6-4F96-894A-9256B129CB1F",
"Answer":"human text5",
"IsTrue":true
},
{
"AnswerId":"EDCCAC18-5209-4457-95F2-C91666F8A916",
"Answer":"human text6",
"IsTrue":false
}
]
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
这是我的查询(示例):
SELECT
Questions.QcmID AS QcmID,
(SELECT
Questions.id AS QuestionId,
Questions.Intitule AS Question,
Questions.Difficulte AS Difficulty,
(SELECT
Reponses.id AS AnswerId,
Reponses.Libelle AS Answer,
Reponses.IsTrue AS IsTrue
FROM
Reponses
WHERE
Reponses.QuestionID = Questions.id
FOR JSON PATH) …Run Code Online (Sandbox Code Playgroud) 我将 AAR 发布给团队的另一部分,他们只检查此 AAR,而不检查源代码。
我想无缝地向他们提供源代码(使用 Ctrl + 单击类或 Ctrl + B 直接在 Android Studio 中获取源代码)。
据我了解,只能使用 .jar 档案,而不是 .aar。
这是 maven-publish 配置文件。我可以将档案(调试、“发布”和源代码)发布到 Maven。我可以获得调试依赖项(“xxx-debug.aar”)。我可以手动下载源(“xxx-sources.jar”)并通过 Android Studio 中的“选择源...”链接它们。但链接并不像任何其他像样的库一样自动进行(想到的是 Retrofit 或 OkHttp):
// MAVEN PUBLICATION
apply plugin: 'maven-publish'
task sourceJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier "sources"
}
publishing {
group = 'foo.bar.rootpackage'
version = "foobar1.0"
publications {
aar(MavenPublication) {
println("Maven publish: package name is ${aarName}")
groupId group
artifactId sdkModuleName
version version
artifact(sourceJar)
def debugAar = "$buildDir/outputs/aar/${aarName}-debug.aar"
if (new File(debugAar).exists()) {
artifact(debugAar) {
classifier …Run Code Online (Sandbox Code Playgroud)