我们建立了一个我们分发给客户的图书馆.我们分发原始的aar文件供他们使用.我们还使用GitHub的原始访问API来提供Maven存储库.
现在为了保持整洁,我们将库分成几个模块:
include ':library'
include ':geohash'
include ':networkstate'
include ':okvolley'
include ':volley'
Run Code Online (Sandbox Code Playgroud)
library是一个Android库,所以是volley和okvolley和networkstate.
现在,当我发布时library,依赖树看起来像这样:
\--- com.sensorberg.sdk:sensorberg-sdk:0.10.0-SNAPSHOT
+--- com.squareup.okhttp:okhttp-urlconnection:2.2.0
| \--- com.squareup.okhttp:okhttp:2.2.0
| \--- com.squareup.okio:okio:1.2.0
+--- com.google.code.gson:gson:2.3.1
+--- android-sdk:okvolley:unspecified
| +--- com.squareup.okhttp:okhttp-urlconnection:2.2.0 (*)
| +--- com.google.code.gson:gson:2.3.1
| +--- android-near-gradle:volley:unspecified
| \--- com.squareup.okhttp:okhttp:2.2.0 (*)
+--- android-sdk:networkstate:unspecified
+--- com.squareup.okhttp:okhttp:2.2.0 (*)
+--- android-sdk:volley:unspecified
\--- com.loopj.android:android-async-http:1.4.5
Run Code Online (Sandbox Code Playgroud)
正如您所见,android-sdk:networkstate:unspecified并android-sdk:okvolley:unspecified显示在外部依赖项列表中.
我想library用捆绑的本地模块创建我的aar.它应该做一个本地清单合并和远jar ...并合并所有模块的依赖性.只显示外部模块.
我确实尝试从build/output/aar相应模块的文件夹中引用本地aar文件,但这似乎也行不通.它仍然似乎用他们的名字引用本地模块而不是合并jar的清单......
有人做过这样的事吗?在Android之外,这将被称为fatjar,并且有像musketyr/gradle-fatjar-plugin这样的插件,可以用Gradle生成一个胖子.
我在我的本地模块上试过这个
if (project.ext.libraryBuild …Run Code Online (Sandbox Code Playgroud) 有没有人知道动画有多长
- (void)setEditing:(BOOL)editing animated:(BOOL)animated;
Run Code Online (Sandbox Code Playgroud)
在UITableViewCell拿?我用0.5秒进行测试,但我更喜欢使用Framework中的常量UITableViewCellEditingAnimationDuration
我们有一个扫描蓝牙设备的应用程序.负责扫描的代码只应在启用蓝牙时运行.此外,我们希望在任何时间点禁用/启用此功能.
我们选择实现一个注册BluetoothAdapter.ACTION_STATE_CHANGED广播的BroadcastReceiver.
这里遇到的一些问题:
以编程方式启用BroadcastReceiver:
public void registerForBroadcasts(Context context) {
IntentFilter bluetooth = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
context.registerReceiver(this, bluetooth);
}
Run Code Online (Sandbox Code Playgroud)
在Manifest中声明BroadcastReceiver
<receiver android:name="com.mypackage.BroadcastReceiver">
<intent-filter>
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED"/>
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
将Manifest中的BroadcastReceiver声明为disabled并以编程方式启用它
<receiver android:name="com.mypackage.BroadcastReceiver"
android:enabled="false" >
<intent-filter>
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED"/>
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
然后在需要时启用组件.
public void registerForBroadcasts(Context context) {
ComponentName component = new ComponentName(context, BroadcastReceiver.class);
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(
component,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
}
Run Code Online (Sandbox Code Playgroud)
我的测试显示,状态是系统持久化的,因此BroadcastReceiver将保持启用状态.它结合了两种方法的优点.
我错过了什么,这种方法看起来合法吗?
我已经为 travis-ci.org 编写了一个 jekyll ci 脚本,但使用了 jeyklll 本身和 htmlproof(gem html-proofer)
我无法让忽略模式起作用。我试图忽略子文件夹中的所有文件
htmlproof ./_site --file-ignore ".+/ios/cocoadocs.+"
Run Code Online (Sandbox Code Playgroud)
但我仍然收到很多错误:
- ./_site/ios/cocoadocs/0.7.0/Classes/SBSDKManager.html
* linking to internal hash #//api/name/authorizationStatus that does not exist (line 875)
* linking to internal hash #//api/name/authorizationStatus that does not exist (line 899)
* linking to internal hash #//api/name/regions that does not exist (line 336)
* linking to internal hash #//api/name/regions that does not exist (line 353)
Run Code Online (Sandbox Code Playgroud)
我如何做一个适当的忽略模式?
我正在gradle中尝试一些事情,我想定义一个名为"jenkins"的任务,该任务依赖于一个名为"test"的模块任务和另一个名为"connectedAndroidTest"的模块任务.我按照http://www.gradle.org/docs/current/userguide/more_about_tasks.html上的说明操作
这是我的"./gradlew任务"输出
------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------
[..]
Verification tasks
------------------
[..]
connectedAndroidTest - Installs and runs the tests for Build 'debug' on connected devices.
test - Runs the unit tests.
Other tasks
-----------
wrapper
Run Code Online (Sandbox Code Playgroud)
所以我认为,这个:
task jenkins
jenkins.dependsOn test
jenkins.dependsOn connectedAndroidTest
Run Code Online (Sandbox Code Playgroud)
会创建这个任务,并使其依赖于其他任务,所以我的jenkins只需要运行
./gradlew jenkins
Run Code Online (Sandbox Code Playgroud)
如果我有其他任务要添加到jenkins运行,我只需要更改gradle文件,我不必触摸jenkins.
但相反,我得到了这个令人讨厌的错误:
* What went wrong:
A problem occurred evaluating root project 'android-near-gradle'.
> Could not find property 'test' on root project 'android-near-gradle'.
Run Code Online (Sandbox Code Playgroud)
也
task jenkins
jenkins.dependsOn unit:test
jenkins.dependsOn library:connectedAndroidTest …Run Code Online (Sandbox Code Playgroud) 我有一个Android应用程序,我想更改调试和其他buildTypes的应用程序标签.我没有任何口味!
这是我认为它应该工作的设置:

-src
|-debug
|-res
|-values
|-strings.xml
|-main
|-res
|-values
|-strings.xml
|-java
[...]
Run Code Online (Sandbox Code Playgroud)
我没有自定义源集只是一个调试buildType:
buildTypes {
debug {
applicationIdSuffix ".debug"
}
}
Run Code Online (Sandbox Code Playgroud)
所以我虽然
sourceSets.debug.res.srcDirs = ['src/debug/res']
Run Code Online (Sandbox Code Playgroud)
会诀窍.但事实并非如此.有任何想法吗?
如何更改每个Gradle构建类型的应用程序名称不再起作用...