我正在尝试从源代码构建Android权限浏览器。我用svn checkout结账http://android-permission-explorer.googlecode.com/svn/
。我添加了一个基本的构建。xml
签出到项目后,然后放入终端:
$ /usr/local/bin/ant release
...
-compile:
[javac] Compiling 14 source files to .../android-permission-explorer/bin/classes
[javac] .../android-permission-explorer/src/com/carlocriniti/android/permission_explorer/ApplicationDetail.java:7: error: unmappable character for encoding UTF-8
[javac] * Activit� d'affichage du d�tail d'une application
...
错误是编码UTF-8的不可映射字符。
下面是ApplicationDetail中有问题的一行。java
(这对我来说毫无意义,因为它只是一个注释):
/*
* Projet : Permission Explorer
* Auteur : Carlo Criniti
* Date : 2011.06.10
*
* Classe ApplicationDetail
* ActivitÈ d'affichage du dÈtail d'une application
* avec les permissions qu'elle utilise
*/
有多个这样的错误。如果/usr/local/bin/ant版本2
问题:为什么注释中的字符会影响构建?
在编写一个简单的构建文件和属性任务时,我已经阅读了ant的文档,但是如果我能想出如何设置源文件语言,那就太糟糕了。
问题:如何在
build中设置源文件语言。xml
?
Manouti回答了为什么Java没有忽略注释。我能对Java说的大概就是:愚蠢的想法。他们用一些不应该被编译的东西破坏了编译过程。
要解决这种情况下的问题,javac需要通过指定的编码java.encoding。最简单的方法似乎如下:
$ /usr/local/bin/ant -Djava.encoding=ISO-8859-1 release
Buildfile: …/android-permission-explorer/build.xml
-set-mode-check:
-set-release-mode:
-release-obfuscation-check:
[echo] proguard.config is ${proguard.config}
-pre-build:
-check-env:
[checkenv] Android SDK Tools Revision 24.0.2
[checkenv] Installed at /opt/android-sdk-macosx
-setup:
[echo] Project Name: Permission Explorer
[gettype] Project Type: Application
-build-setup:
[getbuildtools] Using latest Build Tools: 21.1.2
[echo] Resolving Build Target for Permission Explorer...
[gettarget] Project Target: Android 2.2
[gettarget] API level: 8
[echo] ----------
[echo] Creating output directories if needed...
[mkdir] Created dir: …/android-permission-explorer/bin/rsObj
[mkdir] Created dir: …/android-permission-explorer/bin/rsLibs
[echo] ----------
[echo] Resolving Dependencies for Permission Explorer...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency]
[dependency] ------------------
[dependency] API<=15: Adding annotations.jar to the classpath.
[echo] ----------
[echo] Building Libraries with 'release'...
[subant] No sub-builds to iterate on
...
-dex:
[dex] input: …/android-permission-explorer/bin/classes
[dex] input: /opt/android-sdk-macosx/tools/support/annotations.jar
[dex] Pre-Dexing /opt/android-sdk-macosx/tools/support/annotations.jar -> annotations-b850151b30962160fb610e078fc74448.jar
[dex] Converting compiled files and external libraries into …/android-permission-explorer/bin/classes.dex...
[dx] Merged dex A (37 defs/57.7KiB) with dex B (2 defs/1.1KiB). Result is 39 defs/66.6KiB. Took 0.1s
...
release:
BUILD SUCCESSFUL
Total time: 4 seconds
另一个有效的解决方案是使用以下内容修改项目的build.xml
文件。
<project>
...
<property name="java.encoding" value="ISO-8859-1" />
</project>
即使它们在注释中,无效字符也会导致编译器错误:源代码通常在转换为字节码之前进行预处理,编译器刚刚遇到一个未映射到其字符集的字符。
最简单的方法是编辑源文件并以UTF-8编码保存thm。因为这是一个评论,所以删除这个角色可能不会有什么坏处。
我有许多带有JAXB注释的实体,我希望使用消息转换器将它们转换为JSON。 我知道我的ObjectMapper可以读取JAXB注释: 但是当我调用rest服务时,默认的注册MappingJacksonHttpMessageConverter(它不是为读取JAXB而配置的)似乎会接管--当忽略@XMLTransient时,由于循环引用而导致stackoverflow... 如何配置Spring来使用
问题内容: 考虑此问题中列出的情况: 在Hibernate中映射多级继承 如何使用注释而不是hbm文件完成此映射? 问题答案: 您具体遇到什么问题?通过联接的子类映射类层次结构非常简单: 更新 (基于Michal的评论)。 如果您确实要使用区分符(并且您应该有 充分的 理由这样做),则可以通过将基于类的表策略与辅助表进行混合来实现: 这种方法的缺点是,您必须为每个映射的属性显式指定表:
如何在Grails 3.0.1中映射带有注释的域类? 以下步骤对我不起作用。 步骤1.我使用Grails 3.0.1创建了一个新应用程序()。 步骤2。如Hibernate注释映射中所述,我在src/main/com/books/Book中创建了一个新类。groovy(也是groovy) 步骤3。然后通过将相关条目添加到grails-app/conf/Hibernate/Hibernate,向Hi
我有以下映射器 我期望的是将使用映射列表中的每个条目。但是当我看到生成的代码时,我有以下内容 创建并使用新的映射器方法,而不是使用。 如何告诉使用。 注意:没有的情况下,一切都很正常。
问题内容: 如何在Grails 3.0.1中使用注释映射域类? 以下步骤对我不起作用。 步骤1 。我使用Grails 3.0.1()创建了一个新应用程序。 第二步 。如“ 使用hibernate注释映射”中所述,我在(也尝试过)中创建了一个新类。 第三步 。然后通过向文件中添加相关条目,向Hibernate sessionFactory注册该类,如下所示: 第四步 。启动应用程序()后,“欢迎使用
在测试应用程序中使用Grails中的JPA注释类(在Grails-3.1.11和Grails-3.2.0上尝试过)有问题。 3.将PostgreSQL JDBC依赖添加到build.grandle: 4、创建新的类DictionaryEntity。src/main/groovy中的groovy: 5、创建Hibernate。cfg。grails app/conf目录中的xml(也尝试了grails