我用远程接口编写了一个服务,并将其安装在我的PC的Eclipse AVD上.我有一个客户端测试工具,它启动并调用服务中的方法.最初我通过控件类和活动安装了服务,我现在已将其删除,因此服务的清单如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myname.gridservice"
android:versionCode="1"
android:versionName="1.0">
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:debuggable="true">
<service
android:enabled="true"
android:debuggable="true"
android:name="OverlayService">
<intent-filter>
<action android:name="com.myname.OverlayService.SERVICE"/>
<action android:name="com.myname.gridservice.IRemoteInterface" />
</intent-filter>
</service>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
所以没有活动标签.
当我从Eclipse中的调试图标启动它时,控制台告诉我它正在安装apk(它是),但它不会显示为调试线程并且不会触发断点,尽管服务的行为是可以的客户看到了它.如果我将服务标签包装在具有关联类的活动标签中并启动它,那么我可以调试它
是否可以调试服务而不将其包装在活动中?
我正试图通过手机访问相机.我在将代码放入窗口小部件之前编写了一个简单的存根应用程序.我没有走得太远.代码总是抛出一个运行时异常"无法连接到摄像头服务"代码(从commonsware示例中收集)出错了:
@Override
public void onResume() {
super.onResume();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
Camera.CameraInfo info = new Camera.CameraInfo();
for (int i = 0; i < Camera.getNumberOfCameras(); i++) {
Camera.getCameraInfo(i, info);
if (info.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {
try {
// Gets to here OK
camera = Camera.open(i);
} catch (Exception e) {
e.printStackTrace();
// throws runtime exception :"Failed to connect to camera service"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的证明是(10月20日更正):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nbt.cameratest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="9" /> …
Run Code Online (Sandbox Code Playgroud) 我已经从2.2升级到2.3.我原本以为我的Google地图应用程序无法正常工作,并发布了一个问题链接文本
我现在意识到这个问题要宽泛得多,因为创建新AVD时所存在的内置应用程序都不起作用.例如,'maps'应用程序提供"网络故障 - 此应用程序需要工作数据连接".浏览器无法连接到Google或其他任何内容.对于所有API级别,升级之前存在的AVD以及升级后从命令行创建的AVD都会发生这种情况.我认为我有所有必要的组件:
我试图通过将它与Eclipse的任何引用和我编写的应用程序分离,以最简单的术语来描述这个问题.新创建的AVD集的logcat过滤掉除了错误之外的所有错误很长但是我发布了我认为可能相关的那些:
12-07 12:05:42.048: ERROR/System(61): Failure starting core service
12-07 12:05:42.048: ERROR/System(61): java.lang.SecurityException
12-07 12:05:42.048: ERROR/System(61): at android.os.BinderProxy.transact(Native Method)
12-07 12:05:42.048: ERROR/System(61): at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:146)
12-07 12:05:42.048: ERROR/System(61): at android.os.ServiceManager.addService(ServiceManager.java:72)
12-07 12:05:42.048: ERROR/System(61): at com.android.server.ServerThread.run(SystemServer.java:206)
12-07 12:07:22.553: ERROR/CheckinTask(382): Checkin failed: https://android.clients.google.com/checkin (request #0)
12-07 12:07:22.553: ERROR/CheckinTask(382): java.net.UnknownHostException: android.clients.google.com
12-07 12:07:22.553: ERROR/CheckinTask(382): at java.net.InetAddress.lookupHostByName(InetAddress.java:506)
12-07 12:07:22.553: ERROR/CheckinTask(382): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:294)
12-07 12:07:22.553: ERROR/CheckinTask(382): at java.net.InetAddress.getAllByName(InetAddress.java:256)
12-07 12:07:22.553: ERROR/CheckinTask(382): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136)
12-07 12:07:22.553: ERROR/CheckinTask(382): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
12-07 12:07:22.553: …
Run Code Online (Sandbox Code Playgroud) 我不得不从Eclipse迁移到Android Studio进行Android开发.许多功能更好,有些功能更差.特别是我错过了通过单个键序列匹配大括号(打开 - >右大括号和vv)之间的跳转.
我设法发现CTRL]将你从左大括号带到结束大括号,CTRL [带你从闭合到开始大括号.如果你已经在开始或结束括号中使用了错误的[或]符号,那么编辑器将跳转到该类型的下一个括号.
是否有像Eclipse那样在匹配括号之间跳转的键序列?
在开发应用程序时,我注意到它最终崩溃了,因为JVM无法分配更多内存.使用adb shell dumpsys meminfo命令,我可以看到分配的本机堆在切换活动时增长,直到它接近16M,当它崩溃时.我相信我现在已经纠正了代码以阻止这种情况发生,但我注意到.meminfo返回的数字有所不同,现在看起来总体上略有上升.
基本上我不确定当我启动和停止应用程序时它们是否应该返回相同的值.我有这些数字,我不确定它们是否表示我有内存泄漏:
在主屏幕上,应用程序在内存中(在DDMS中看到的PID),但没有运行
adb shell dumpsys meminfo(相关PID)给出:
native dalvik other total
size: 5248 4039 N/A 9287
allocated: 5227 3297 N/A 8524
free: 12 742 N/A 754
(Pss): 2183 3534 1726 7443
(shared dirty): 1976 4640 876 7492
(priv dirty): 2040 1664 940 4644
Run Code Online (Sandbox Code Playgroud)
应用程序从主屏幕开始,开始的活动是:
启动画面 - >选择模式 - >活动1,然后全部使用后退按钮退出,直到返回主屏幕
meminfo现在:
native dalvik other total
size: 5572 4231 N/A 9803
allocated: 5497 3153 N/A 8650
free: 74 1078 N/A 1152
(Pss): 2479 3614 1742 7835
(shared dirty): 1976 …
Run Code Online (Sandbox Code Playgroud) 如标题中所述,每次单击XML文件(布局或清单)时,进度显示"正在加载数据..." - 它会针对每个版本的API 2.1到4.4.2执行此操作.
有没有办法阻止这种行为.因为它减慢了系统的速度?
更新:我为此提出了一份AOSP 错误报告.
更新2:我很高兴地说AOSP团队现在已经提高了对"严重"修复的优先级.
更新3: 8天后,我不会高兴地说,尽管它被标记为一个关键的错误,它仍然在释放22.6.2等提供完整的修复.
更新4: 最后22.6.2发布,似乎工作正常.谢谢你们的作者.
我已经更新到Eclipse的最新SDK(4.0.x),工具(r16)和插件(16.0.1).我注意到现在几乎我在Eclipse中的所有项目都将此问题标题中提到的库显示为Java构建路径的Libraries选项卡中的引用库.这是相对较新的,但我不确定它出现的SDK升级.
它没有造成任何问题,但我很想知道它的目的是什么?
有趣的是,它并没有出现在我也使用命令行中的Ant构建的项目中.在这些项目中,我将Ant构建的二进制文件发送到Eclipse工作区外的文件夹.这些项目自然在项目根目录中有一个build.xml,一个ant.properties和一个proguard.cfg.我怀疑这与com.android ...库不在构建路径中的原因有关.在Eclipse下构建时,这些项目构建完全正常.
我的项目都不是图书馆项目.
更新:如果我从Java构建路径中删除它,它似乎没有任何不良影响,只要应用程序仍然构建(即使在Eclipse下)并运行正常.
我有两个Eclipse安装,3.5和3.6.在3.6中,当我打开附加的javadoc时,它使用内部Web浏览器,在3.5中它使用外部Firefox(我更喜欢).
我找不到控制此行为的偏好.请问这个小问题能帮到我吗?
我写了一个映射应用程序,它有两个活动,一个活动显示一个谷歌地图视图,另一个显示使用osmdroid 3.0.5 jar的等效视图.
到目前为止,我一直只在模拟器上进行测试,其功能在显示的区域和覆盖数据方面完全相同.现在我在真正的姜饼设备上运行应用程序,我注意到谷歌地图活动似乎支持缩放,而Osmdroid不支持.
我没有写任何特定的代码来缩放谷歌方面或Osmdroid.这两个活动都实现了OnTouchListener.这两个活动只有OnTouch的存根,如:
@Override
public boolean onTouch(View v, MotionEvent e) {
// chain it for now
return false;
}
Run Code Online (Sandbox Code Playgroud)
我在Osmdroid活动中的mapview是类:org.osmdroid.views.MapView
有没有人知道如何使用osmdroid进行缩放工作,或者知道使用osmdroid的示例应用程序,我可以研究并适应我的应用程序?
我有一个带有链接源文件夹的项目.此项目依赖于另一个(远程服务)项目,因此通过远程接口传递的aidl文件和类common_src
位于两个项目之间共享的链接文件夹中.这项工作与Eclipse构建完全一致,(一个源文件,两个项目,一个项目中的更改反映在另一个项目中,就像它应该的那样).
我现在想从命令行执行Ant构建.我设法使用build.xml
SDK工具中的示例,在所有目标上构建了一个带有单个src目录的项目.它会ant_rules_r3.xml
自动导入,一旦定义source.dir
并out.dir
在其中定义,build.properties
它们都相当轻松.
转到带有src
和common_src
文件夹的项目,我无法构建它.首先,我将编译目标及其所依赖的所有内容剪切并粘贴到build.xml
上面的设置任务中.我并将所限定的元件common_src
的build.properties
,并加入如下所示的最后一行-compile target
(从复制ant_rules_r3.xml
)到build xml
:
<src path="${source.absolute.dir}" />
<src path="${gen.absolute.dir}" />
<src path="${common_src}" /><!--ADDED-->
Run Code Online (Sandbox Code Playgroud)
它在构建过程中进一步发展 - 它可以在common_src中找到.java文件,但不能找到.aidl文件.毫不奇怪,我意识到,援助是一个单独的目标.然后我补充道
<src path="${common_src}" />
Run Code Online (Sandbox Code Playgroud)
到构建xml中的-aidl目标,它失败了:
BUILD FAILED
C:\dev\projects\Eclipse\AndroidWorkspace\MapProject\build.xml:77: aidl doesn't
support the nested "src" element.
Run Code Online (Sandbox Code Playgroud)
所以这让我很好,真的卡住了.理想情况下,我只想修改build.properties文件以包含common_src并将其传递给ant_rules_r3.xml,但我想不出这样做的方法.如果有人能够建议如何做到,我将非常感激.