这是我的设置:我有一个Android库,在导出时创建一个aar,我有一个使用该库作为模块的Android应用程序(这是导入本地aar文件的唯一方法).
要在我的Android应用程序中将aar文件作为模块导入,我单击File- > New Module...- > Import .JAR or .AAR Package然后选择我导出的aar文件.之后我只需要compile project在gradle文件中添加一行就可以使用我的库.
我经常更新我的库,因为我正在开发它,我想经常测试它.问题是我不知道如何更新我的Android应用程序项目中的模块...
我现在正在做的是我gradlew assembleRelease在我的android库项目中发出一个创建新的aar文件,然后在我的android app项目中我删除了Module Settings(或Project Structure)窗口中的模块,我删除了项目根目录下的模块文件夹然后我再次导入它.每次我想测试我的图书馆时,整个操作大约需要3分钟,我对此感到厌倦.你知道是否有更快的方法来更新从aar文件创建的android模块?
我正在尝试使用Google Play服务中的geofencing api,但我无法设法让我的广播接收器触发其onReceive()方法.
看起来我尊重使其工作所需的一切,但我没有过渡事件.
ACCESS_FINE_LOCATION许可BroadcastReceiver在我的Manifest中注册了我的导出值设置为"true"(有人说它是必需的)ACCESS_MOCK_LOCATION存在延迟)但是,我仍然获得了成功的onAddGeofencesResult()回调,但没有onReceive()回调.我尝试使用Nexus 5和Nexus 7,两者都无法触发地理围栏过渡.
我还尝试了https://developer.android.com/training/location/geofencing.html上的示例,但其行为完全相同.
这是我的BroadcastReceiver班级:
public class GeofencesReceiver extends BroadcastReceiver implements ConnectionCallbacks, OnConnectionFailedListener, OnAddGeofencesResultListener {
private final static String TAG = "GeofencesReceiver";
private Context context = null;
private LocationClient locationClient = null;
/**
* An empty constructor is needed by the manifest.
*/
@SuppressWarnings("unused")
public GeofencesReceiver(){}
public GeofencesReceiver(Context context){
this.context = …Run Code Online (Sandbox Code Playgroud) android broadcastreceiver geofencing google-play-services location-client
我正在Android Studio上开发Android应用程序,有3个同事,最近,我们的项目不再构建了.我们都有不同版本的Android Studio(我的是0.2.8)并且它无法在所有版本上进行编译.我们无法找到导致问题的原因,因为它发生在我们所有人的不同时刻(奇怪的是,使用相同的项目版本,应用程序是在我的Android Studio上而不是在我的同事之上).
有时,Android Studio能够在打开项目时编译我的项目,但在我尝试运行应用程序时失败.但大多数时候,Android Studio在打开它时无法编译我的项目.
我没有错误来帮助我理解问题,只有后台任务的消息标题可以给我一些发生的事情:Gradle: Resolve dependencies ':_DebugApk'.这个后台任务永远不会完成,只是加载到时间结束.
我不知道它是否与build.gradle文件有关,但是在这里你可以找到错误的东西.
home = System.getenv("ANDROID_HOME")
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
maven {
url "http://maven.hq.couchbase.com/nexus/content/repositories/releases/"
}
maven {
url "http://files.couchbase.com/maven2/"
}
}
dependencies {
compile 'com.android.support:support-v4:18.0.+'
compile 'com.android.support:appcompat-v7:18.0.+'
compile 'com.google.android.gms:play-services:3.1.36'
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.couchbase.cblite:CBLite:1.0.0-beta'
compile 'com.couchbase.cblite:CBLiteEktorp:1.0.0-beta'
compile 'com.couchbase.cblite:CBLiteJavascript:1.0.0-beta'
instrumentTestCompile 'com.jayway.android.robotium:robotium-solo:4.3'
}
android {
compileSdkVersion 18
buildToolsVersion "18.1"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml' …Run Code Online (Sandbox Code Playgroud) 我在使用Android Studio的Android应用程序中包含ShowcaseView库时遇到问题.
在GitHub repo(https://github.com/Espiandev/ShowcaseView)上,它说它应该很容易与Maven一起安装.但是当我搜索showcaseview时,Maven没有找到结果.
所以我在我的计算机上克隆了repo并尝试将它的库文件夹作为我的项目模块依赖项中的java库包含在内.但是,当我尝试在我的代码中使用它时,它说
无法解析符号'ShowcaseView'
我的猜测是因为实际的ShowcaseView库没有因为错误而编译(克隆的repo在多个文件中显示错误
无法解析符号'R'
将NineOldAndroids添加为模块依赖项后的事件,如GitHub repo所示.
有什么我想念的吗?
我有一个android-library插件,它使用几个包含.jar文件的android库,并直接从我的build.gradle文件中引用:
compile fileTree(dir: 'libs', include: '*.jar')
Run Code Online (Sandbox Code Playgroud)
然后我会发出一个gradlew assembleRelease命令来创建一个可以在Android应用程序中使用的.aar文件.到目前为止,这对我来说一直很好.
我现在需要在我的android-library中使用Google Play服务.正如官方Android文档(http://developer.android.com/google/play-services/setup.html#Setup)中所述,我需要将Google Play服务作为库项目包含在maven中导入:
compile 'com.google.android.gms:play-services:4.3.23'
Run Code Online (Sandbox Code Playgroud)
但是当我构建我的.aar文件时,Google Play服务似乎不包含在其中(我的.aar文件只有200kb,Google Play Services .jar库大于1mb).
我已经读过Google Play服务应该作为Android库模块引用,但我无法像没有编译错误那样导入它.有人可以帮我把Google Play服务打包到我的android-library中吗?
我的android-library build.gradle文件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.android.gms:play-services:4.3.23'
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 19
buildToolsVersion '19.0.1'
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
}
release {
runProguard false
}
}
Run Code Online (Sandbox Code Playgroud)
我的android应用程序build.gradle文件:
buildscript {
repositories { …Run Code Online (Sandbox Code Playgroud) android gradle android-library google-play-services android-studio
更新1
删除ServiceTestCase我的测试类的扩展后,我编辑了我的gradle文件以更改testInstrumentationRunner为org.robolectric.RobolectricTestRunner但我得到另一个错误:
Running tests
Test running started
Test running failed: Instrumentation run failed due to 'java.lang.NoSuchMethodException'
Empty test suite.
Run Code Online (Sandbox Code Playgroud)
我搜索了谷歌,但我找不到为什么会收到此错误消息.这是整个gradle文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "foo.bar.testappsdk"
minSdkVersion 9
targetSdkVersion 19
testApplicationId "novom.anyware.anywaresdk.test"
testInstrumentationRunner "org.robolectric.RobolectricTestRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'LICENSE.txt'
}
sourceSets {
instrumentTest.setRoot('src/androidTest')
}
}
dependencies {
compile 'com.android.support:support-v4:19.1.0'
compile …Run Code Online (Sandbox Code Playgroud) 我正在创建一个使用RestKit和一堆其他pod的pod.
当我使用命令编译我的pod时:
pod repo push myCocoapodsRepo myPodspec.podspec --allow-warnings --verbose
Run Code Online (Sandbox Code Playgroud)
我得到的第一个错误是
In file included from /var/folders/mx/cg3cmvh14wl2f3mnq0sc_cd00000gn/T/CocoaPods/Lint/Pods/RestKit/Code/ObjectMapping.h:21:
/var/folders/mx/cg3cmvh14wl2f3mnq0sc_cd00000gn/T/CocoaPods/Lint/Pods/RestKit/Code/ObjectMapping/RKObjectMapping.h:23:9: error: include of non-modular header inside framework module 'RestKit.RKObjectMapping' [-Werror,-Wnon-modular-include-in-framework-module]
#import "RKValueTransformers.h"
^
Run Code Online (Sandbox Code Playgroud)
如果我依赖其他StackOverflow线程来解决这个错误,比如
他们都会说,设置CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES到YES和/或将有问题的头文件中Public部分替代的Project部分,它会解决这个问题.但对我来说,事实并非如此.这些线程也有Swift语言的共同点,但我不使用它.我仍然只使用Objective-C,但我不知道它是否会对我的问题产生影响.
我不明白错误意味着什么,因此我解决问题有很多困难.有人有其他解决方案吗?
我目前正在探索Java中的UDP数据包传输,以在Android上创建多人游戏.我成功地通过使用通常的"127.0.0.1"在我的Nexus 4中交换数据包,并且我也成功地在我的本地网络中的PC服务器和我的Android客户端之间交换数据包.但由于我希望我的游戏可以在互联网上播放,我希望我的Android客户端能够在不在同一本地网络上时与我的PC服务器交换数据包.这是我在努力的地方.
我的设置:连接家庭互联网连接的PC服务器和连接3G网络的Nexus 4.
首先,我的PC服务器开始侦听端口10000,我的Android客户端打开一个套接字,以便在端口10001上接收服务器的数据包.然后,Android客户端将一个数据包发送到PC服务器,并将其发送到端口上的当前公共地址"173.246.12.125" 10000.PC服务器接收数据包并在端口10001上向发送方发送响应.但Android客户端从不接收响应.
这是我的PC服务器代码:
public class UDPServer {
private final static int SERVER_PORT = 10000;
private final static int CLIENT_PORT = 10001;
public static void main(String[] args) {
InetAddress clientAddr = null;
DatagramSocket socket = null;
try {
//Initializing the UDP server
System.out.println(String.format("Connecting on %s...", SERVER_PORT));
socket = new DatagramSocket(SERVER_PORT);
System.out.println("Connected.");
System.out.println("====================");
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
}
while(true){
try {
//Listening
byte[] buf = new byte[1024];
DatagramPacket packet = …Run Code Online (Sandbox Code Playgroud) 我已经能够使用Passport进行身份验证,但我不知道如何访问序列化用户.我已经在几个地方读过访问它的方法是使用req.user但是当我尝试使用GET到/ hello时,它表示用户未定义...
这是我的app.js
var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var authentication = require('./routes/authentication');
var content = require('./routes/content');
var posts = require('./routes/post.js');
var upload = require('./routes/upload.js');
var media = require('./routes/media.js');
var http = require('http');
var path = require('path');
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var mongoose = require('mongoose');
var mongoConnectionString = 'mongodb://localhost/judgmental';
var User = require('./models/user.js');
mongoose.connect(mongoConnectionString, function(error) {
if (error) {
throw error;
}
console.log('Successfully connected to MongoDB');
});
var app = …Run Code Online (Sandbox Code Playgroud) 我有一个与BIND_AUTO_CREATE绑定到我的Activity的服务,并以START_STICKY开头.我没有显式调用startService().
由于当我的Activity被杀死并且onStop()方法不可行时,并不总是调用onDestroy()方法,因为当用户只需按下Home按钮时我不希望我的服务停止,我不知道何时取消绑定我的服务.
这是我的问题:
如果我希望我的服务在我的Activity活着时运行,并在我的Activity被杀死时停止,我应该在哪里取消绑定我的服务?
当前调用onDestroy()方法并调用unbindService()时,不会触发Service的onUnbind()方法.为什么?
android ×6
gradle ×2
java ×2
aar ×1
bind ×1
cocoapods ×1
geofencing ×1
github ×1
maven ×1
node.js ×1
objective-c ×1
ondestroy ×1
passport.js ×1
restkit ×1
robolectric ×1
service ×1
session ×1
showcaseview ×1
udp ×1
xcode ×1