精华内容
下载资源
问答
  • cannot find symbol import android.os.SystemProperties 前言   最近在搞Android高版本的9和10开发,正在敲着代码唱着歌,发现在Android源码目录的app下面导入import android.os.SystemProperties这个包老是...

    cannot find symbol import android.os.SystemProperties



    前言

      最近在搞Android高版本的9和10开发,正在敲着代码唱着歌,发现在Android源码目录的app下面导入import android.os.SystemProperties这个包老是不行,尼玛搞得我怀疑人生了啊。这个我咋在Android源码下面通过Android.mk老是编译不过呢?好吗,今天的篇章就来讲讲为啥在Android高版本上面就有问题呢,怎么做才能编译通过呢。



    正式开搞

    1.1 错误信息

    活见鬼了,导入SystemProperties怎么也不OK,一直提示如下错误信息:

     error: cannot find symbol
    import android.os.SystemProperties;
                     ^
      symbol:   class SystemProperties
      location: package android.os
    

    在这里插入图片描述
    真的不是我不认真,没有import的,我是无辜的,我真的导入了,不信你看:

    import android.os.SystemProperties;
    

    在这里插入图片描述

    1.2 解决之道

    我到该App的源码目录下面查看Android.mk发现使用了编译配置LOCAL_SDK_VERSION ,这个是重点

    LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
    LOCAL_USE_AAPT2 := true
    LOCAL_CERTIFICATE := platform
    LOCAL_MODULE_TAGS := optional
    LOCAL_SDK_VERSION := current  #这个是关键
    
    • LOCAL_SDK_VERSION 这个编译配置,就会使编译的应用不能访问hide的api,有时一些系统的class被import后编译时说找不到这个类,就是这个原因造成的。这个也是谷歌为了解决碎片化操碎心的表现。

    好吗既然这样,是不是把这个编译配置删除就OK了呢,我们试试,修改好的编译配置如下:

    LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
    LOCAL_USE_AAPT2 := true
    LOCAL_CERTIFICATE := platform
    LOCAL_MODULE_TAGS := optional
    

    让我们编译一把,看看能否编译成功,什么还是有错误:

    packages/apps/ExactCalculator/Android.mk: error: ExactCalculator: Must specify LOCAL_SDK_VERSION or LOCAL_PRIVATE_PLATFORM_APIS, 
    build/make/core/sdk_check.mk:21: error: done.
    16:03:29 ckati failed with: exit status 1
    
    #### failed to build some targets (01:05 (mm:ss)) ####
    
    

    在这里插入图片描述
    编译提示我们需要使用LOCAL_PRIVATE_PLATFORM_APIS编译配置。谷歌让我们干啥那就干啥吗,谁用Android是它的呢。修改编译文件如下:

    LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
    LOCAL_USE_AAPT2 := true
    LOCAL_CERTIFICATE := platform
    LOCAL_MODULE_TAGS := optional
    LOCAL_PRIVATE_PLATFORM_APIS := true
    

    好了见证奇迹的时刻到了,编译成功。

    在这里插入图片描述



    总结

    文章至此,让我们总结一下上面提到的两个编译配置,本文就可以告一段落了。

    • LOCAL_SDK_VERSION := current 意思是编译时忽略系统隐藏类(@hide),如果有这个编译配置那么使用了隐藏的类和方法就会报错。
    • LOCAL_PRIVATE_PLATFORM_APIS := true,这个编译选项和上面的作用相反,加入这个编译配置就可以在Android源码环境下使用隐藏的类和方法。
    展开全文
  • 我用的时候Intellij idea12,代码都没有什么错误,但是就是无法对该properties文件进行编译。并且还有一个问题,当我用maven把所有的jar包依赖都正确导入之后,发现项目运行的时候仍然会报找不到对应的jar包。纠结...

    在用IntelliJ IDEA 进行开发的时候,会有2个目录,一个是“开发目录”,用来经常进行我们的开发操作,是可见的,另一个就是“输出目录”,这个环境目录,我们是看不见的,也就是在IDEA里面看不见,我们在实际的路径中能看到,其实这个环境目录就相当于我们的容器的当前环境,我们通常的做法是把容器的虚拟目录指定到一个目录,这里IntelliJ IDEA会默认把当前环境指定到out里面,这样一来不用再往容器里面发布了,节省了开发时间。

    最近在学习struts2,在学到struts2的类型转换时 ,实现类型转换的时候,需要在action包下面建一个与action对应的一个局部类型转换文件,后缀名为properties。我用的时候Intellij  idea12,代码都没有什么错误,但是就是无法对该properties文件进行编译。并且还有一个问题,当我用maven把所有的jar包依赖都正确导入之后,发现项目运行的时候仍然会报找不到对应的jar包。纠结了几天,终于解决了问题。


    idea12只能编译resources下面的资源的文件,所以需要在pom.xml文件中进行配置。并且jar包的管理也需要在pom.xml文件进行设置。

     <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>copy</id>
                            <phase>install</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>src/main/webapp/WEB-INF/lib</outputDirectory><!--设置编译后maven dependency的输出路径-->
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
    
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <excludes>
                        <exclude>**/*.java</exclude>
                    </excludes>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                </resource>
            </resources>
        </build>


    展开全文
  • 如果你使用Gradle构建项目后,发现.java文件同级目录中.xml文件没有被拷贝到.class的输出目录中,可以在项目配置中加入 sourceSets.main.java.srcDirs = ['src'] sourceSets.main.resources.srcDirs = ...

    如果你使用Gradle构建项目后,发现.java文件同级目录中.xml文件没有被拷贝到.class的输出目录中,可以在项目配置中加入

    sourceSets.main.java.srcDirs = ['src']
    
    sourceSets.main.resources.srcDirs = sourceSets.main.java.srcDirs

    原理:

    task compileJava,任务类型JavaCompile ,只编译".java"文件,其他类型文件全部忽略,输出目录为 build/classes/main。

    task processResources,任务类型Copy,忽略".java"文件,其他文件全部拷贝到 build/resources/main目录。

    将resource指向src路径后,在任务processResources中,会将所有.xml等配置文件拷贝到build/resources/main中,而默认IDEA会将这个路径加入到classpath中的。

    扩展:

    还有些配置文件放在指定目录中,比如指定一个'config'目录用来存放一些数据库配置参数。

    读取时使用 class.getClassLoader().getResourceAsStream() 方法读取,这些文件的目录也要加入到classpath中的。可以在工程中配置

    dependencies {   
      // 将config目录加入runtime classpath中
      runtime files('config') 
    }
    这样这个目录中的文件就可以在运行时加载了,到现在希望你没有被ClassLoader指定路径的使用搞晕。
     
    

    转载于:https://my.oschina.net/asay/blog/674143

    展开全文
  • 将mxmlc.exe 编译功能加入右键

    千次阅读 2010-11-23 01:31:00
    答案是否定的. --------------------------------------- 怎么把mxml编译成swf? <br />使用flex提供的mxmlc 位于安装目录下 bin目录,需要在控制台(cmd)中使用.   用法

    目前部署了Flex,提供主机或者虚拟主机很少,在国内尚未看到.当然你自己架设服务器不包括在内,这样意味着使用mxml在服务端实事生成swf难以实现.我们制作的Flex作品就没有使用的地方了吗?答案是否定的.

    ---------------------------------------

    怎么把mxml编译成swf?

    使用flex提供的mxmlc
    位于安装目录下 bin目录,需要在控制台(cmd)中使用.

     

    用法
    mxmc f:/xxx.mxml
    将在f:/下生成一个xxx.mxml.swf的文件.

    这个方法可以将的flex app 轻易的部署到网络上.
    但是没有经过授权的flex生成的swf只能保留一天,24小时后自动失效.

    ----------------------------------------------

    在Flex的安装目录中,在bin下面有个mxmlc.exe,类似于javac.exe.他就是将mxml文档编译成我们需要的swf文件的工具..
    在cmd中运行她..出现使用方法
    Usage: mxmlc [-version] [-configuration path] [-flexlib path] [-libpath path] [-systemclasses path] [-g] [-O0] [-profile] [-o path] [-headless] [contextroot root] [-proxyurl url] [-proxyhttpsurl url] [-proxyallowurloverride] [-gatewayurl url] [-gatewayhttpsurl url] [-remoteallowurloverride] [-webroot directory] [-aspath path] [-genlibdir dir] [-encoding file_encoding] [-namespace uri manifestfile] [-report] [-loglevel error|warn|info|debug] [-debugpassword password] [-accessible] [-batch] foo.mxml

    经过网上搜索资料..和不断的测试,终于得出最好方法,只要使用下面参数就可以编译出swf,并且可以发不到网站使用.
    mxmlc.exe -proxyurl http://* mxml文档绝对路径
    这样就会在同mxml目录生成同命swf文件.可以供我们使用了..

    但接下来的问题是编译时如何提高效率...难道每次都要在cmd下转到Flex/bin目录下 执行编译参数吗?非也.
    我们来个将mxmlc关联到mxml文件..只要双击目标mxml文档就可以开始编译.

    1)将处理参数写入批处理..将下面代码保存为c.cmd

    @echo off
    D:
    cd "D:/Program Files/Macromedia/Flex/bin"
    :c
    cls
    mxmlc.exe -proxyurl http://* %1
    if errorlevel=1 goto retry
    exit
    :retry
    echo Retry Now?
    pause
    goto c

    2)关联到mxml文档到右键菜单...将下面代码保存为mxmlfile.reg

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT/.mxml]
    @="mxmlfile"

    [HKEY_CLASSES_ROOT/mxmlfile]
    "EditFlags"=dword:00000000
    "BrowserFlags"=dword:00000008
    @="Flex 文件"

    [HKEY_CLASSES_ROOT/mxmlfile/Shell]
    @="Compile_to_swf"

    [HKEY_CLASSES_ROOT/mxmlfile/Shell/Compile_to_swf]
    @="使用 Flex mxmlc 编译"

    [HKEY_CLASSES_ROOT/mxmlfile/Shell/Compile_to_swf/command]
    @="/"D://Program Files//Macromedia//Flex//bin//c.cmd/" /"%1/""

    将这几个文件放到D:/Program Files/Macromedia/Flex/bin,然后双击mxmlfile.reg,导入注册表,就可以使用了.方便快捷!
    注意:本问中Flex安装在D:/Program Files/Macromedia/Flex 如果你是默认安装的话,请将盘符D改为C,或者读者自己使用的目录
    有问题跟帖.

    Posted:2005-10-8 16:48:32 By cbm      

    文章用于windows 2000/xp/2003..

    c.cmd 字符编码保存为为 ansi
    mxmlfile.reg 字符编码保存为 utf-8

    ----------------------------------------------------

    在FLEX的BIN目录下有一个mxmlc.exe的工具,由它可以直接将MXML生成SWF文件
    我先写了一个rerd.mxml
    内容如下:

    <?xml version="1.0" ?>
    <!-- ?xml tag must start in line 1 column 1 -->
    <!-- MXML root element tag -->
    <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" >
    <!-- Flex controls exist in a container. Define a Panel container. -->
    <mx:panel title="Rerd FLEX TEST">
    <!-- TextInput control for user input. -->
    <mx:TextInput id="myInput" width="150" text="" />
    <!-- Button control that triggers the copy. -->
    <mx:Button id="myButton" label="复制文件"
    click="myText.text=myInput.text" />
    <!-- Output TextArea control. -->
    <mx:TextArea id="myText" text="" width="150" height="20" />
    </mx:panel>
    </mx:Application>

    (一定要存为UTF-8编码)
    在命令提示符下进入BIN的目录,输入
    mxmlc rerd.mxml
    执行完后就会产生rerd.swf和rerd-generated.as两个文件
    其实可以用用mxmlc.exe做批量转换工具!写一个简单的批处理就行了
    应该还可以使用.as文件产生.swf的今天没有尝试出来!

    fdb.exe不知道有什么用,不过这里可以看出你FLEX使用的是什么版本的,别以为你安装时输入了KG就对了,在执行mxmlc时也显示“Flex 1.0 Full Commercial Edition enabled”,但你运行fdb.exe就会看到“The Flex 1.0 Trial Edition evaluation period will expire in 59 days.”知道MM现在的厉害了吧!时间是从fdb.exe文件的创建日期开始算的,每天8:00AM会减掉一天,至于60天结束了会有什么后果,因为我的FLEX没有安装成功,所以我也不知道。

    还有一个工具是licensetool.exe大家一看就知道是干吗的!你安装时输入的SN就在license.properties文件里,但licensetool.exe究竟怎么用,大家可以多试试!

     

    fdb.exe显示的信息并不一定是正确的,只要你把flex.war和samples.war注册成功
    即便60天过后fdb.exe显示你的flex已经成为Developer Edition,MXML编译的SWF也不会超过24小时就过期的

    展开全文
  • boost全平台编译方法

    万次阅读 热门讨论 2015-06-11 12:00:25
    0.通用规则boost自带一套编译工具bjam,bjam本身是跨平台的,并且也要自行编译出来。在boost目录下有bootstrap.sh和bootstrap.bat两个脚本分别用来编译*nix和windows下的bjam。bootstrap脚本可以传入参数,以在编译...
  • maven项目编译没有calss文件,一般情况是写的代码有错误,但这种情况maven项目一般不能明确的指出报的错。所以这种情况靠经验了,或者把项目放到别的myeclipse中重新部署运行,才会把明确的指出错误。 maven项目...
  • 这次我加入了另外一个library工程,作用和以前一样,但是就是把弹Toast的功能移动到这个library中去了,点击按钮会调用library中的弹框的函数。这样就模拟符合了用gradle编译带有依赖工程的APK项目的需求了。好了,...
  • “AjaxControlToolkit.Properties.Resources.NET4.resources”正确嵌入或链接到程序集“AjaxControlToolkit”,或者确保所有需要 的附属程序集都可加载并已进行了完全签名。 解决办法:   请确保在编译时已...
  • Gradle加速编译

    千次阅读 2018-11-21 10:18:16
    调整gradle配置 开启daemon 相比没有开启daemon,开启daemon有如下好处 ...开启daemon很简单,以Mac为例,在家目录下的.gradle/gradle.properties文件(如没有,可需要新建文件),加上如下的...
  • android studio编译比命令行调用gradle编译快很多 从Android Studio 2.3版本之后,通过Android Studio打包普遍比通过命令行调用gradle编译要快很多。这是因为Android Studio增加了一项功能。通过Android Studio打包...
  • IDEA 下开发web项目部署时,配置文件没有编译的问题
  • Android编译

    千次阅读 2015-07-13 10:57:53
    Android的编译系统涉及面极广,包括编译工具、印像文件编译、SDK编译、NDK编译、目标系统配置等多个方面,虽然这些方面的内容烦琐而晦涩,可以参考的资料不多,但是系统设计尤其是系统架构人员必须熟悉它们。...
  • 提高flex编译

    2009-11-12 09:43:00
    1、把 Build Auto 改成 手动 Build2、project 右键 -> properties -> Flex Application 中,把不需要编译的mxml文件,移除3、在安装路径下找到FlexBuilder.ini文件,进行编辑,加入如下参数-vmargs-Xms512m-Xmx512m-...
  • gradle编译ndk失败

    千次阅读 2015-09-17 16:34:55
    将Eclipse Project移到...问题1:我的Application.mk中申明了只编译ARM 32位,移过去却发现在编译ARM 64,于是Fail. /home/yanchen/StudioSpace/RemoteControll-sansang/app/src/main/jni/sqlite/sqlite3.c:90644:29:
  • Android反编译与防止反编译

    千次阅读 2012-09-16 10:37:14
    1、Android反编译  1)下载两个工具 dex2jar,jar2java  2)修改apk后缀为.zip,解压得classes.dex  3)用dex2jar.bat打开classes.dex得到classes.dex.dex2jar.jar  4)用jar2java打开上面得到的jar包即得...
  • ndroid程序基本上都是java语言很容易被反编译,这里呢google在android2.3的时候就加入了ProGuard代码混淆工具。 这里呢,要分两部分说。一部分是2.3时代,一部分是4.0时代,他们的混淆是不一样的,但也大同小异。 ...
  • 纳尼?我的Gradle build编译只要1s

    千次阅读 2018-12-05 10:18:46
    我的Gradle build编译只需要1s!!! 为了避免被Diss,先声明了,本文不算原创,只是对几篇Gradle编译提速的文章进行了: 搬运、整理、细化和补漏,文尾已列出相关的参考文献!先上个图舒服下: (PS:这是直接新建...
  • Eclipse的Java Project用Ant编译没有问题,但Editor里面老是针对导入包位置有红叉叉的问题,比如import XXXX cannot be resolved. Ant里面,由于build.xml文件里明确指明了外部路径,如 destdir =".build" extdirs...
  • android基于java的,而java反编译工具很强悍,所以对正常apk...2.3版本以上在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”可以对代码进行混淆,反编译后是很难看懂的。2.3...
  • Android 安全之如何反编译与加密apk包

    万次阅读 2017-02-15 17:38:42
    会被反编译吗?如何防止被反编译? 相关文章:Android apk如何加固防止被破解(防止逆向编译)一、查看APK包的源码  dex2jar 这个工具用于将dex文件转换成jar文件  下载地址:...
  • Java代码编译成二进制class 文件,这个class 文件也可以反编译成源代码 ,除了注释外,原来的code 基本都可以看到。为了防止重要code 被泄露,我们往往需要混淆(Obfuscation code , 也就是把方法,字段,包和类...
  • Gradle编译打包小结

    千次阅读 2016-07-12 20:58:09
    以前用Eclipse打包,比较...用Gradle编译打包非常方便 笔者整理的平时编译打包的配置,记录一下,避免遗忘 1.自动签名 可以直接写在build.gradle里,如:signingConfigs { develop { storeFile '/xxxxxx/xxx.jks'
  • CURL编译

    千次阅读 2014-04-18 14:17:55
     2>用VC2008/2005打开工程curl-7.26.0\lib\libcurl.vcproj,转换下工程并构建,可以直接编译成功! 3>新建个控制台工程测试下刚才编译的静态库libcurl.lib,可以在libcurl\curl-7.26.0\docs\examples目录找个简单的...
  • 1、编译Spark Spark可以通过SBT和Maven两种方式进行编译,再通过make-distribution.sh脚本生成部署包。SBT编译需要安装git工具,而Maven安装则需要maven工具,两种方式均需要在联网下进行,通过比较发现SBT编译速度...
  • 编译libvpx

    千次阅读 2015-08-21 15:50:10
    liunx下编译libvpx for android: k@k-C410:/home/libvpx$ ./configure --target=armv7-android-gcc --sdk-path=$ANDROID_NDK --prefix=/usr/local/android/ --disable-examples --disable-install-docs --...
  • Android Gradle加速编译

    千次阅读 2015-09-18 15:21:47
    Android Gradle加速编译Android Gradle加速编译 更新Gradle 启动多线程编译 开启dex增量编译 更新Gradle 去 Gradle官网可以找到新版的Gradle。 然后打开压缩包,再更换配置环境。 我用的是Oh My Zsh,所以这里修改....
  • java加载properties配置文件的几种方法

    千次阅读 2017-11-21 20:00:02
    这样,可以方便的对属性进行修改,而不改变编译的代码。 1.以用流读取properties配置文件 Properties prop = new Properties(); InputStream inputStream = Class.class.getResourceAsStream
  • android studio编译报错

    千次阅读 2018-09-27 13:07:31
    1、Error:Execution failed for task ':app:...android studio编译时报错,具体如下: Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForOnlin...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,571
精华内容 23,028
关键字:

编译没有properties加入