Android xml文件如何打包进jar 20C

使用类似 android.support.percent.PercentRelativeLayout 的第三方类时,导入其bin下自带的jar后,找不到其在values.xml 下定义的


等标签
需要手动将这个文件导入自己的项目中

我应该如和将这个xml包含在jar中?

4个回答

如果用的是Android studio

可 以打成 aar包
http://blog.csdn.net/q610098308/article/details/51693708

xml等资源文件无法导成jar包的,你可以在AndroidManifest声明为library,这样该项目就可以当成lib库供其他项目引用啦

res下的所有文件都不能加入jar里,只能加入aar里

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android ant 打包,包含第三方jar库且有资源文件的工程
<?xml version="1.0" encoding="UTF-8"?> <project name="MainProject" basedir="." default="main" > <!-- The local.properties file is created and updated by the 'android' tool. It contains the path to the SDK. It should *NOT* be checked into Version Control Systems. --> <property file="local.properties" /> <property name="apk-name" value="product" /> <property name="apk-version" value="latest" /> <property name="apk-market" value="dev" /> <!-- android.jar路径 --> <property name="android-jar" value="/opt/adt/sdk/platforms/android-19/android.jar" /> <!-- android.tools路径 --> <property name="android.tools" value="/opt/adt/sdk/tools" /> <!-- 初始化 目录文件 --> <target name="init" > <echo> start initing ... </echo> <mkdir dir="out" /> <delete> <fileset dir="out" > </fileset> </delete> <mkdir dir="gen" /> <delete> <fileset dir="gen" > </fileset> </delete> <mkdir dir="assets" /> <delete> <fileset dir="assets" > </fileset> </delete> <mkdir dir="bin/classes" /> <delete> <fileset dir="bin/classes" > </fileset> </delete> <!-- ${apk-version}表示版本,后面会详细讲到 --> <mkdir dir="build/${apk-version}" /> <echo> finish initing. </echo> </target> <target name="main" depends="init" > <echo> generating R.java for project to dir gen (using aapt) ... </echo> <exec executable="aapt" failonerror="true" > <arg value="package" /> <!-- package表示打包 --> <arg value="-m" /> <!-- m,J,gen表示创建包名的目录和R.java到gen目录下 --> <arg value="-J" /> <arg value="gen" /> <arg value="-M" /> <!-- M指定AndroidManifest.xml文件 --> <arg value="AndroidManifest.xml" /> <arg value="-S" /> <!-- S指定res目录,生成对应的ID,可多个 --> <arg value="res" /> <arg value="-S" /> <arg value="../SlideMenu/res" /> <arg value="-I" /> <!-- I指定android包的位置 --> <arg value="${android-jar}" /> <arg value="--auto-add-overlay" /> <!-- 这个重要,覆盖资源,不然报错 --> </exec> <echo>generating R.java for library to dir gen (using aapt) </echo> <exec executable="aapt" failonerror="true"> <arg value="package" /> <arg value="-m" /> <arg value="--non-constant-id" /> <arg value="--auto-add-overlay" /> <arg value="-J" /> <arg value="gen" /> <arg value="-M" /> <arg value="../SlideMenu/AndroidManifest.xml" /> <arg value="-S" /> <arg value="res" /> <arg value="-S" /> <arg value="../SlideMenu/res" /> <arg value="-I" /> <arg value="${android-jar}" /> </exec> <!-- 第三方jar包需要引用,用于辅助编译 --> <path id="project.libs" > <fileset dir="libs" > <include name="*.jar" /> </fileset> </path> <echo> compiling java files to class files (include R.java, library and the third-party jars) ... </echo> <!-- 生成的class文件全部保存到bin/classes目录下 --> <javac bootclasspath="${android-jar}" destdir="bin/classes" > <src path="../RemoteHelpe/src" /> <src path="../SlideMenu/src" /> <src path="src" /> <src path="gen" /> <classpath refid="project.libs" /> </javac> <echo> packaging class files (include the third-party jars) to calsses.dex ... </echo> <exec executable="dx" > <arg value="--dex" /> <arg value="--output=out/classes.dex" /> <!-- 输出 --> <arg value="bin/classes" /> <!-- classes文件位置 --> <arg value="libs" /> <!-- 把libs下所有jar打包 --> </exec> <echo> packaging resource (include res, assets, AndroidManifest.xml, etc.) to res.zip ... </echo> <!-- 打包资源文件 --> <exec executable="aapt" > <arg value="package" /> <arg value="-f" /> <!-- 资源覆盖重写 --> <arg value="-M" /> <arg value="AndroidManifest.xml" /> <arg value="-S" /> <arg value="res" /> <arg value="-S" /> <!-- lib资源文件的res --> <arg value="../SlideMenu/res" /> <arg value="-A" /> <!-- 与R.java不同,需要asset目录也打包 --> <arg value="assets" /> <arg value="-I" /> <arg value="${android-jar}" /> <arg value="-F" /> <!-- 输出资源压缩包 --> <arg value="out/res.zip" /> <arg value="--auto-add-overlay" /> </exec> <echo> building unsigned.apk ... </echo> <java classname="com.android.sdklib.build.ApkBuilderMain" classpath="${android.tools}/lib/sdklib.jar" > <arg value="out/unsigned.apk" /> <arg value="-u" /> <arg value="-z" /> <arg value="out/res.zip" /> <arg value="-f" /> <arg value="out/classes.dex" /> <arg value="-nf" /> <arg value="./libs" /> </java> <!-- 生成apk文件到build目录下 --> <!-- 其中${apk-version/name/market}用户多渠道打包,后面会讲到 --> <echo> signing the unsigned apk to final product apk ... </echo> <exec executable="java" > <arg value="-jar" /> <arg value="../sign/signapk.jar" /> <arg value="../sign/testkey.x509.pem" /> <arg value="../sign/testkey.pk8" /> <arg value="out/unsigned.apk" /> <arg value="hello.apk" /> </exec> <echo> done. </echo> </target> </project> 其实我现在的主要问题是:在打包jar库资源文件的时候,由于我的主程序中的一个layout文件引用了xmlns:wison="http://schemas.android.com/apk/res/com.main.project" 的说明;导致了 res/layout/audio.xml:260: error: No resource identifier found for attribute 'switchMinHeight' in package 'com.main.project' 的问题; appt库资源文件的时候出的这个错。 请问大侠们怎么解决这个问题呢?
jenkins maven android项目打包apk
RT,在jenkins如何打包maven管理的android项目。 ant打包已经试过,没有效果,这个只能打包自由风格的项目吧; maven应该可以打包android项目的,只要配置好pom.xml文件,结果报错了 我是根据这篇文章配置的pom.xml,命令行运行mvn clean package报错 unknown <packaging>apk</packaging> 在jenkins报错: [INFO] /bin/sh: /root/android-sdk-macosx/build-tools/19.1.0/aapt: cannot execute binary file [ERROR] Error when generating sources. org.apache.maven.plugin.MojoExecutionException: at com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo.generateR(GenerateSourcesMojo.java:745) 。。。 Caused by: com.jayway.maven.plugins.android.ExecutionException: ANDROID-040-001: Could not execute: Command = /bin/sh -c cd /root/.jenkins/workspace/apos && /root/android-sdk-macosx/build-tools/19.1.0/aapt package -m -J /root/.jenkins/workspace/apos/target/generated-sources/r -f --no-crunch -M /root/.jenkins/workspace/apos/AndroidManifest.xml -S /root/.jenkins/workspace/apos/res --auto-add-overlay -A /root/.jenkins/workspace/apos/target/generated-sources/combined-assets -I /root/android-sdk-macosx/platforms/android-17/android.jar --output-text-symbols /root/.jenkins/workspace/apos/target, Result = 126 为什么jenkins会报错无法执行命令,而在命令行运行mvn clean package时却unknown apk。。 求教~
android反编译工具AXMLPrinter2.jar 解码的问题
用AXMLPrinter2.jar反编译安卓里的xml文件只有AndroidManifest.xml可以成功, 如果反编译layout里的布局xml文件只能看到<?xml version="1.0" encoding="utf-8"?>
window下apk与AXMLPrint2.jar反编译问题(android)
1、用apktool_2.3.0.jar反编译出如下图:![图片说明](https://img-ask.csdn.net/upload/201710/30/1509373224_828760.png)但上图是在unknown文件夹下的; 2、用记事本直接打开AndroidManifest.xml及res文件夹下的.xml文件,均出现乱码; 3、对AndroidManifest.xml使用AXMLPrinter2.jar生成AndroidManifest.txt文件,打开正常。但是,对res文件夹下的.xml使用AXMLPrinter2.jar所生成的*.txt就只有<?xml version="1.0" encoding="utf-8"?>这一行。
Android ant 脚本打包 关联library project的项目
以下是build.xml Android ant 脚本打包 关联library project的项目,java源文件编译成class文件时 找不到R 打包cardview的library时 总是不能成功,其他library生成的都是包。但是cardview就是不行················································· <?xml version="1.0" encoding="UTF-8"?> <project name="recyclerexample" default="release" basedir="."> <!-- 指定配置文件 --> <property file="project.properties" /> <property file="local.properties" /> <!-- 定义工具目录 --> <property name="sdk.dir" value="${sdk-dir}" /> <property name="android.tools.dir" value="${sdk.dir}/tools" /> <property name="android.platformtools.dir" value="${sdk.dir}/platform-tools" /> <property name="android.platforms.dir" value="${sdk.dir}/platforms/${target}" /> <property name="android.tools.absolute.dir" location="${android.tools.dir}" /> <property name="android.platformtools.absolute.dir" location="${android.platformtools.dir}" /> <property name="android.platforms.absolute.dir" location="${android.platforms.dir}" /> <!-- 定义工具 <property name="verbose" value="false" />--> <condition property="exe" value=".exe" else=""> <os family="windows" /> </condition> <property name="jar.proguard" value="${proguard}" /> <property name="android-jar" value="${android.platforms.absolute.dir}/android.jar" /> <property name="android-dx" value="${android.platformtools.absolute.dir}/dx.bat" /> <property name="android-apkbuilder" value="${android.tools.absolute.dir}/apkbuilder.bat" /> <property name="android-adb" value="${android.platformtools.absolute.dir}/adb${exe}" /> <property name="android.zipalign" value="${android.tools.absolute.dir}/zipalign${exe}" /> <property name="android-aapt" value="${android.platformtools.absolute.dir}/aapt${exe}" /> <property name="android-jarsigner" value="${JAVA_HOME}/bin/jarsigner${exe}" /> <!-- ANT环境变量 --> <property environment="env" /> <!-- 生成R文件的相对目录 --> <property name="outdir-gen" value="${project.home}/gen" /> <!-- 编译后的文件放置目录 --> <property name="outdir-bin" value="${project.home}/bin" /> <!-- 输出目录 --> <property name="outdir" value="${project.outdir}" /> <!-- 清单文件 --> <property name="manifest-xml" value="${project.home}/AndroidManifest.xml" /> <!-- 源文件目录 --> <property name="resource-dir" value="res" /> <property name="asset-dir" value="assets" /> <!-- 资源文件目录 --> <property name="drawable-dir" value="${resource-dir}/drawable" /> <property name="drawable-hdpi-dir" value="${resource-dir}/drawable-hdpi"/> <property name="drawable-ldpi-dir" value="${resource-dir}/drawable-ldpi"/> <property name="drawable-mdpi-dir" value="${resource-dir}/drawable-mdpi"/> <property name="drawable-zh-rCN-dir" value="${resource-dir}/drawable-zh-rCN"/> <!-- java源文件目录 --> <property name="srcdir" value="src" /> <property name="srcdir-ospath" value="${project.home}/${srcdir}" /> <!-- 动态库so文件目录 --> <property name="library" value="${project.home}/libs" /> <!-- 第三方library --> <property name="library-dir1" value="${library1}" /> <property name="library-dir3" value="${library3}" /> <!-- 外部类库所在目录 --> <property name="external-lib" value="lib" /> <property name="external-lib-ospath" value="${project.home}/${external-lib}" /> <!-- 生成class目录 --> <property name="outdir-classes" value="${outdir-bin}/classes" /> <property name="outdir-classes-ospath" value="${outdir-classes}" /> <!-- classes.dex相关变量 --> <property name="dex-file" value="classes.dex" /> <property name="dex-path" value="${outdir-bin}/${dex-file}" /> <property name="dex-ospath" value="${dex-path}" /> <!-- 经过aapt生成的资源包文件 --> <property name="resources-package" value="${outdir-bin}/resources.ap_" /> <property name="resources-package-ospath" value="${resources-package}" /> <!-- 未认证apk包 --> <property name="out-unsigned-package" value="${outdir-bin}/${appName}-unsigned.apk" /> <property name="out-unsigned-package-ospath" value="${out-unsigned-package}" /> <!-- 证书文件 --> <property name="keystore-file" value="${keystore}" /> <!-- 已认证apk包 --> <property name="out-signed-package" value="${outdir-bin}/${appName}.apk" /> <property name="out-signed-package-ospath" value="${out-signed-package}" /> <!-- 已优化apk包 --> <property name="zipalign-signed-package" value="${outdir-bin}/${appName}${version}_release.apk" /> <!-- 输出路径的apk包 --> <property name="outdir-package" value="${project.outdir}/${appName}.apk" /> <!-- 初始化工作 --> <target name="init"> <echo>Initializing all output directories...</echo> <delete dir="${outdir-bin}" /> <delete dir="${outdir-gen}" /> <delete dir="${library-dir1}/bin" /> <delete dir="${library-dir3}/bin" /> <delete dir="${library-dir1}/gen" /> <delete dir="${library-dir3}/gen" /> <mkdir dir="${outdir-gen}" /> <mkdir dir="${outdir-bin}" /> <delete dir="${library-dir1}/bin" /> <delete dir="${library-dir3}/bin" /> <delete dir="${library-dir1}/gen" /> <delete dir="${library-dir3}/gen" /> <mkdir dir="${outdir-classes}" /> <!-- 把缺少的BuildConfig复制进去,暂时不知道如何生成 --> </target> <!-- 根据工程中的资源文件生成R.java文件 ,多个合并为一个--> <target name="GenRJAVA" depends="init"> <echo>Generating R.java / Manifest.java from the resources...</echo> <exec executable="${android-aapt}" failonerror="true"> <arg value="package" /><!-- package表示打包--> <arg value="-m" /><!--m,J,gen表示创建包名的目录和R.java到gen目录下 --> <arg value="-J" /> <arg value="${outdir-gen}" /> <arg value="-M" /><!-- M指定AndroidManifest.xml文件--> <arg value="${manifest-xml}" /> <arg value="-S" /><!-- S指定res目录,生成对应的ID,可多个--> <arg value="${resource-dir}" /> <arg value="-S" /> <arg value="${library-dir1}/res" /> <!-- 注意点:同时需要调用Library的res--> <arg value="-S" /> <arg value="${library-dir3}/res" /> <arg value="--extra-packages" /> <arg value="slidingmenu_library:SMSSDK" /> <arg value="-I" /><!-- I指定android包的位置--> <arg value="${android-jar}" /> <arg value="--auto-add-overlay" /> <!-- 这个重要,覆盖资源,不然报错--> </exec> </target> <!-- 将工程及库应用中的java源文件编译成class文件 --> <target name="compile" depends="GenRJAVA"> <echo>Compiling java source code...</echo> <javac encoding="UTF-8"target="1.6" destdir="${outdir-classes}" bootclasspath="${android-jar}" includeantruntime="on"> <src path="${library-dir1}/src" /><!-- 库应用源码 --> <src path="${outdir-gen}" /><!-- 生成的class文件全部保存到bin/classes目录下 --> <classpath> <fileset dir="${library-dir1}/libs" includes="*.jar" /><!-- 第三方jar包需要引用,用于辅助编译 --> </classpath> </javac> <javac encoding="UTF-8" destdir="${outdir-classes}" bootclasspath="${android-jar41}" includeantruntime="on"> <src path="${library-dir3}/src" /> <src path="${outdir-gen}" /> <classpath> <fileset dir="${library-dir3}/libs" includes="*.jar" /> </classpath> </javac> <javac encoding="UTF-8" destdir="${outdir-classes}" bootclasspath="${android-jar}"> <src path="${project.home}/src" /><!-- 工程源码--> <src path="${outdir-gen}" /><!-- 生成的class文件全部保存到bin/classes目录下 --> <classpath> <fileset dir="${library}" includes="*.jar" /><!-- 第三方jar包需要引用,用于辅助编译 --> </classpath> </javac> </target> <!--执行代码混淆和优化 必须在java文件编译以后--> <target name="optimize" depends="compile"> <echo>optimize classes are put to "${out.absolute.dir}" .</echo> <jar basedir="${outdir-classes}" destfile="${outdir-bin}/temp.jar"/> <taskdef resource="proguard/ant/task.properties" classpath="${jar.proguard}" /> <proguard> -injars ${outdir-bin}/temp.jar -outjars ${outdir-bin}/optimized.jar -libraryjars ${android-jar} -optimizationpasses 5 -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -include proguard-project.txt </proguard> <delete file="${outdir-bin}/temp.jar"/> <delete dir="${outdir-classes}" failonerror="false" /> <mkdir dir="${outdir-classes}"/> <unzip src="${outdir-bin}/optimized.jar" dest="${outdir-classes}"/> <delete file="${outdir-bin}/optimized.jar"/> </target> <!-- 将.class文件转化成.dex文件 --> <target name="dex" depends="compile"> <echo>Converting compiled files and external libraries into ${outdir-dx}test.dex...</echo> <exec executable="${android-dx}" failonerror="true"> <arg value="--dex" /> <arg value="--output=${dex-ospath}" /><!-- 输出 --> <arg path="${outdir-classes}" /><!-- classes文件位置 --> <arg value="${library}" /> <!-- 把libs下所有jar打包 --> </exec> </target> <!-- 将资源文件放进输出目录 --> <target name="package-res-and-assets"> <echo>Packaging resources and assets...</echo> <exec executable="${android-aapt}" failonerror="true"> <arg value="package" /> <arg value="-f" /><!-- 资源覆盖重写 --> <arg value="-M" /> <arg value="${manifest-xml}" /> <arg value="-S" /> <arg value="${resource-dir}" /> <arg value="-S"/> <arg value="${library-dir1}/res"/> <arg value="-S"/> <arg value="${library-dir3}/res"/> <arg value="-A" /><!-- asset目录也打包 --> <arg value="${asset-dir}" /> <arg value="-I" /> <arg value="${android-jar}" /> <arg value="-F" /><!-- 输出资源压缩包 --> <arg value="${resources-package}" /> <arg value="--auto-add-overlay" /> </exec> </target> <!-- 打包成未签证的apk --> <target name="package" depends="dex,package-res-and-assets"> <echo>Packaging unsigned apk for release...</echo> <exec executable="${android-apkbuilder}" > <arg value="${out-unsigned-package-ospath}" /><!-- 输出 --> <arg value="-u" /><!-- u指创建未签名的包--> <arg value="-z" /><!-- 资源压缩包 --> <arg value="${resources-package-ospath}" /> <arg value="-f" /><!-- dex文件 --> <arg value="${dex-ospath}" /> <arg value="-nf"/><!-- 把libs下的so库打包 --> <arg value="${library}" /> </exec> <echo>It will need to be signed with jarsigner before being published.</echo> </target> <!-- 对apk进行签证 --> <target name="jarsigner" depends="package"> <echo>Packaging signed apk for release...</echo> <exec executable="${android-jarsigner}" failonerror="true"> <arg value="-keystore" /> <arg value="${keystore-file}" /> <arg value="-storepass" /> <arg value="111111" /><!-- 验证密钥完整性的口令,创建时建立的 --> <arg value="-keypass" /> <arg value="111111" /> <!-- 专用密钥的口令,就是key密码 --> <arg value="-signedjar" /> <arg value="${out-signed-package-ospath}" /><!-- 输出 --> <arg value="${out-unsigned-package-ospath}" /><!-- 未签名的apk --> <!-- 不要忘了证书的别名 --> <arg value="recyclersign" /> </exec> <echo message="签名成功" /> </target> <!-- 优化 --> <target name="optimize-app" depends="jarsigner"> <echo> optimizing the application...</echo> <exec executable="${android-zipalign}"> <arg value="-v" /> <arg value="-f" /> <arg value="4" /> <arg value="${out-signed-package-ospath}" /> <arg value="${zipalign-signed-package}" /> </exec> </target> <!-- 发布 --> <target name="release" depends="optimize-app"> <!-- 删除未签证apk --> <delete file="${out-unsigned-package-ospath}" /> <echo>APK is released. path:${out-signed-package-ospath}</echo> <copy file="${out-signed-package-ospath}" tofile="${outdir-package}"></copy> <echo>APK is copy to path:${outdir-package}</echo> </target> </project> ``` ```
InflateException:: Binary XML file line
android.view.InflateException: Binary XML file line #171: Binary XML file line #9: Binary XML file line #9: Error inflating class com.facebook.drawee.view.SimpleDraweeView com.facebook.drawee.view.SimpleDraweeView 这里的类是jar中的文件 没有对应的XML文件 求告知怎么改啊 不知道怎么回事就出了这个毛病
android ANT 打包错误
最近做ANT混淆的时候发现编译不过去,找了半天没有明白是什么错误 ,请各位大神帮忙解答一下。 -dex: [dex] input: F:\workspace\yunmaApplication\bin\proguard\obfuscated.jar [dex] Converting compiled files and external libraries into F:\workspace\yunmaApplication\bin\classes.dex... [dx] 'C:\Program' 不是内部或外部命令,也不是可运行的程序 [dx] 或批处理文件。 BUILD FAILED F:\adt-bundle-windows-x86_64-20130917\sdk\tools\ant\build.xml:892: The following error occurred while executing this line: F:\adt-bundle-windows-x86_64-20130917\sdk\tools\ant\build.xml:894: The following error occurred while executing this line: F:\adt-bundle-windows-x86_64-20130917\sdk\tools\ant\build.xml:906: The following error occurred while executing this line: F:\adt-bundle-windows-x86_64-20130917\sdk\tools\ant\build.xml:284: null returned: 1
在Android studio中启动AdMob
根据一个教程进行Android studio的导入 下载了jar,然后放到我的lib文件夹中,然后将这行代码添加到build.gradle: compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar') build.gradle文件如下: buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar') } } apply plugin: 'android' dependencies { } android { compileSdkVersion 17 buildToolsVersion "17" defaultConfig { minSdkVersion 11 targetSdkVersion 17 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest.setRoot('tests') } } 然后在build->rebuild工程中报错: Gradle: A problem occurred evaluating root project 'freeBP'. > No signature of method: org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile() is applicable for argument types: (org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection) values: [file collection] Possible solutions: module(java.lang.Object)
android framework层面开发 style问题
现在开发中遇到如下问题:因为公司里面是对android的framework做了改动的,android.R.*对应的资源文件也被改动了。这样我在eclipse里面单独编译一个应用的时候就遇到某资源无法找到导致编译不过的问题。。。比如D:\workspace\MyApplication\res\values\styles.xml:25: error: Error retrieving parent for item: No resource found that matches the given name '@android:style/TextAppearance.StatusBar'. (因为我在自己应用的D:\workspace\MyApplication\res\values\styles.xml中有这么一行:<style name="TextAppearance.StatusBar.Title" [color=red]parent="@android:style/TextAppearance.StatusBar"[/color]> 引用到了framework中的资源文件。。) 请问如何改动android sdk里面的文件才能让这个项目编译通过? 目前已经将自己编译的android framewrok lib 包编译路径放在android.jar前面。 开始时以为可以通过替换D:\android-sdk-windows\platforms\android-8\data\res\values 路径下的文件解决这个问题。。结果发现依然不行。。 或者我想可以有第二条路,自己编一个SDK版本出来,然后在eclipse使用自己的这个SDK版本。。。不过不知道如何下手编。。。
Error parsing XML: junk after document element
![图片说明](https://img-ask.csdn.net/upload/201504/21/1429588746_751146.png) SET_BTU.XML(自己写的)文件最后面出现了一长长的红色波浪线打底的语句:04-16 16:53:07.066: E/AndroidRuntime(25817): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.huyubao/com.example.huyubao.MainActivity}: android.view.InflateException: Binary XML file line #30: Error inflating class com.android.internal.widget.ActionBarView 这是什么意思?怎么解决呀? 错误提示: Error:(16) Error parsing XML: junk after document element Error:(16) Execution failed for task ':app:processDebugResources'. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: C:\Users\Administrator\AppData\Local\Android\sdk\build-tools\21.1.2\aapt.exe package -f --no-crunch -I C:\Users\Administrator\AppData\Local\Android\sdk\platforms\android-21\android.jar -M D:\android-studio\exercise\svn_小风车\xfegnche.radio_net\app\build\intermediates\manifests\full\debug\AndroidManifest.xml -S D:\android-studio\exercise\svn_小风车\xfegnche.radio_net\app\build\intermediates\res\debug -A D:\android-studio\exercise\svn_小风车\xfegnche.radio_net\app\build\intermediates\assets\debug -m -J D:\android-studio\exercise\svn_小风车\xfegnche.radio_net\app\build\generated\source\r\debug -F D:\android-studio\exercise\svn_小风车\xfegnche.radio_net\app\build\intermediates\res\resources-debug.ap_ --debug-mode --custom-package com.xfengche.wwww.xfegncheradio_net -0 apk --output-text-symbols D:\android-studio\exercise\svn_小风车\xfegnche.radio_net\app\build\intermediates\symbols\debug Error Code: 1 Output: D:\android-studio\exercise\svn_小风车\xfegnche.radio_net\app\build\intermediates\res\debug\drawable\set_btn.xml:16: error: Error parsing XML: junk after document element
android 的requestpermissions真的没有人能解答这个奇怪的问题吗
如题,我的app想早每次resume(在oncreate也不行)的时候检查权限,如果没有权限就询问,但是他并没有询问的那个弹窗这是为啥呢 我尝试过,把CALL_PHONE 换成READ_EXTERNAL_STORAGE,它就可以显示提示允许还是拒绝读写内存的那个权限提示。这是为什么呢?我调试的设备是小米5an droid7.0的 下面 是关键代码 ``` package com.example.administrator.myapplication; import android.Manifest; import android.os.Build; import android.os.Bundle; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; import java.util.Arrays; import static android.content.pm.PackageManager.PERMISSION_GRANTED; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (Build.VERSION.SDK_INT >= 23) { if (PERMISSION_GRANTED == ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE)) { //has permission, do operation directly Toast.makeText(this,"alreadyge",Toast.LENGTH_SHORT).show(); } else { //do not have permission ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE}, 11); Toast.makeText(this,"2",Toast.LENGTH_SHORT).show(); } } } } ``` 下面是配置文件 ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.administrator.myapplication"> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> ``` 下面是build.gradle ``` apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.example.administrator.myapplication" minSdkVersion 17 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.1' testCompile 'junit:junit:4.12' } ```
Unity点击按钮访问Android的WebView页面。
** *Android代码(第一个类):* ** package com.xys; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.widget.Toast; import com.unity3d.player.UnityPlayerActivity; public class UnityTestActivity extends UnityPlayerActivity { Context mContext = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = this; } //Unity中会调用这个方法,从而开打WebView public void StartWebView(String str) { Toast.makeText(UnityTestActivity.this, "msksjajkajjfk", 2000).show(); Intent intent = new Intent(mContext,WebViewActivity.class); this.startActivity(intent); } } ** *(第二个类)* ** package com.xys; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.webkit.WebView; import android.widget.Button; import android.widget.Toast; public class WebViewActivity extends Activity { private WebView webView; private Button close; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView) findViewById(R.id.webView); webView.loadUrl("http://www.baidu.com/"); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setUseWideViewPort(true) ; webView.getSettings().setLoadWithOverviewMode(true) ; webView.setWebViewClient(new WebViewClient()); close = (Button) findViewById(R.id.button); close.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { WebViewActivity.this.finish(); } }); } private class WebViewClient extends android.webkit.WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //这里实现的目标是在网页中继续点开一个新链接,还是停留在当前程序中 view.loadUrl(url); return true; } } } ** *xml:* ** <Linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <webview android:id="@+id/webView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" /> <button android:id="@+id/button" android:text="关闭网页" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </Linearlayout> ** *AndroidManifest.xml:* ** <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.xys" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".WebViewActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".UnityTestActivity"></activity> </application> </manifest> ** *Unity代码:* ** using UnityEngine; using System.Collections; public class Test : MonoBehaviour { // Update is called once per frame void Update () { if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Home) ) { Application.Quit(); } } void OnGUI() { if(GUILayout.Button("OPEN WEBVIEW",GUILayout.Height(100))) { AndroidJavaClass jc = new AndroidJavaClass("com.xys"); AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("UnityTestActivity"); jc.Call("StartWebView",""); } } } (注:android代码中.class文件已经打成jar格式,也放入了Unity中)。Unity中Bundle Identifier中写的是(com.xys)。在Android程序那边写了一个Toast(),但在真机上运行的时候,却不会弹。应该是Unity那边调Android方法错了,但不知道怎么改,求各位帮帮忙拉。非常感谢。
急!!!Android中swipelistview点进去就崩
项目中用到了侧滑删除(SwipeListView),之前是直接用as关联的github上的库(就是as添加依赖的第一个,我不知道那是github上的还是哪里的),结果最近那个不能用了。只好找了个jar包,结果运行的时候一点进去接崩溃。试了好多种方法,还是不知道哪里出了问题,紧急求助,万分感谢。 ``` 02-23 07:02:52.995 1485-1485/com.jb.android.log E/AndroidRuntime: FATAL EXCEPTION: main android.view.InflateException: Binary XML file line #21: Error inflating class com.fortysevendeg.android.swipelistview.SwipeListView at android.view.LayoutInflater.createView(LayoutInflater.java:613) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at com.jb.android.log.fragment.LogListFragment.onCreateView(LogListFragment.java:80) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:829) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035) at android.app.BackStackRecord.run(BackStackRecord.java:635) at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1397) at android.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:437) at android.support.v13.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:145) at android.support.v4.view.ViewPager.populate(ViewPager.java:1105) at android.support.v4.view.ViewPager.populate(ViewPager.java:951) at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1473) at android.view.View.measure(View.java:15172) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390) at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) at android.view.View.measure(View.java:15172) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:15172) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390) at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) at android.view.View.measure(View.java:15172) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2148) at android.view.View.measure(View.java:15172) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1848) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1100) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1273) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) at android.view.Choreographer.doCallbacks(Choreographer.java:555) at android.view.Choreographer.doFrame(Choreographer.java:525) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.view.LayoutInflater.createView(LayoutInflater.java:587) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)  at android.view.LayoutInflater.inflate(LayoutInflater.java:489)  at android.view.LayoutInflater.inflate(LayoutInflater.java:396)  at com.jb.android.log.fragment.LogListFragment.onCreateView(LogListFragment.java:80)  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:829)  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)  at android.app.BackStackRecord.run(BackStackRecord.java:635)  at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1397)  at android.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:437)  at android.support.v13.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:145)  at android.support.v4.view.ViewPager.populate(ViewPager.java:1105)  at android.support.v4.view.ViewPager.populate(ViewPager.java:951)  at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1473)  at android.view.View.measure(View.java:15172)  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390)  at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)  at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)  at android.view.View.measure(View.java:15172)  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)  at android.view.View.measure(View.java:15172)  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390)  at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)  at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)  at android.view.View.measure(View.java:15172)  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2148)  at android.view.View.measure(View.java:15172)  at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1848)  at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1100)  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1273)  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)  at android.view.Choreographer.doCallbacks(Choreographer.java:555)  at android.view.Choreographer.doFrame(Choreographer.java:525)  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)  at android.os.Handler.handleCallback(Handler.java:615)  at android.os.Handler.dispatchMessage(Handler.java:92)  at android.os.Looper.loop(Looper.java:137)  at android.app.ActivityThread.main(ActivityThread.java:4745)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:511)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)  at dalvik.system.NativeStart.main(Native Method)  Caused by: java.lang.RuntimeException: You forgot the attributes swipeFrontView or swipeBackView. You can add this attributes or use 'swipelist_frontview' and 'swipelist_backview' identif ``` 根据报错,最后一行说我是没写frontview或者backview,可是这些都写了啊。 debug的时候是加载布局的时候就报错。 ``` View view = inflater.inflate(R.layout.fragment_log_list, container, false); ``` 这是我的swipelistview布局文件 ``` <com.fortysevendeg.android.swipelistview.SwipeListView xmlns:swipe="http://schemas.android.com/apk/res-auto" android:id="@+id/log_listview" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" swipe:swipeBackView="@+id/log_listview_item_back2" swipe:swipeCloseAllItemsWhenMoveList="true" swipe:swipeFrontView="@+id/log_listview_item_front2" swipe:swipeOffsetLeft="150dp" swipe:swipeMode="left" swipe:swipeActionLeft="reveal" swipe:swipeActionRight="reveal" swipe:swipeAnimationTime="100" swipe:swipeOffsetRight="80dp" swipe:swipeOpenOnLongPress="false"/> ```
Android Studio 添加百分比布局时出错 Failed to reslove 如何解决
在看《第一行代码》第二版按书上写的操作,导入百分比布局时出错。按网上的解决方法,尝试改了几个percent版本不好使。 在\Android\sdk\extras\android\m2repository\com\android\support\percent下打开**maven-metadata.xml**如下 <?xml version="1.0" encoding="UTF-8"?> <metadata> <groupId>com.android.support</groupId> <artifactId>percent</artifactId> <versioning> <release>25.3.1</release> <versions> <version>22.2.0</version> <version>23.0.0</version> <version>23.0.1</version> <version>23.1.0</version> <version>23.1.1</version> <version>23.2.0</version> <version>24.0.0-alpha1</version> <version>23.2.1</version> <version>23.3.0</version> <version>24.0.0-alpha2</version> <version>23.4.0</version> <version>24.0.0-beta1</version> <version>24.0.0</version> <version>24.1.0</version> <version>24.1.1</version> <version>24.2.0</version> <version>24.2.1</version> <version>25.0.0</version> <version>25.0.1</version> <version>25.1.0</version> <version>25.1.1</version> <version>25.2.0</version> <version>25.3.0</version> <version>26.0.0-alpha1</version> <version>25.3.1</version> </versions> <lastUpdated>20170322231651</lastUpdated> </versioning> </metadata> AS里的**build.gradle**文件如下 apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "26.0.1" defaultConfig { applicationId "com.example.jingzi.uilayouttest" minSdkVersion 15 targetSdkVersion 24 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.2.1' compile 'com.android support:percent:24.0.0' testCompile 'junit:junit:4.12' } 更新时报错:**Error(27,13)Failed to reslove:com.android.support:percent:24.2.1** 请问应该如何解决?
android报错Could not determine the class-path ...
Android Studio导入Eclipse项目报错: `Error:Could not determine the class-path for interface com.android.builder.model.AndroidProject.` 项目的build.gradle文件如下: ```Gradle buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' } } apply plugin: 'com.android.application' dependencies { compile fileTree(dir: 'libs', include: '*.jar') } android { compileSdkVersion 22 buildToolsVersion "25.0.2" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } // Move the tests to tests/java, tests/res, etc... instrumentTest.setRoot('tests') // Move the build types to build-types/<type> // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... // This moves them out of them default location under src/<type>/... which would // conflict with src/ being used by the main source set. // Adding new build types or product flavors should be accompanied // by a similar customization. debug.setRoot('build-types/debug') release.setRoot('build-types/release') } } ``` 请问一下该怎么解决?
ant执行build.xml出错
log日志:这是其中一个报错日志 显示drawable找不到sp_bg_ed图片,但其实这张图片是存在的,麻烦谁帮我看下是哪里出错了,谢谢! [exec] [exec] E:\Code_2016_01\WisdomGather_2016_02_14_1107\WisdomGather_Product_sh anxi\WisdomGather_Product\res\drawable\sp_bg_selector.xml:4: error: Error: No re source found that matches the given name (at 'drawable' with value '@drawable/sp_bg_ed'). Build.xml 代码 build.xml中打包资源文件代码 <target name="package-res-and-assets"> <echo>Packaging resources and assets ${out.resource.package.absolute.file} ...</echo> <exec executable="${tools.aapt}" failonerror="true"> <arg value="package" /> <arg value="-f" /> <!-- 资源覆盖重写 --> <arg value="-S" /> <arg value="${basedir}/res" /> <arg value="-S"/> <arg value="${in.native.libs.absolute.dir1}/res"/> <arg value="-S"/> <arg value="${in.native.libs.absolute.dir2}/res"/> <arg value="-S"/> <arg value="${in.native.libs.absolute.dir3}/res"/> <arg value="-S"/> <arg value="${in.native.libs.absolute.dir4}/res"/> <arg value="-I" /> <arg value="${jar.android}" /> <arg value="-A" /> <!-- asset目录也打包 --> <arg value="${basedir}/assets" /> <arg value="-M" /> <arg value="${in.manifest.file}" /> <arg value="-F" /> <!-- 输出资源压缩包 --> <arg value="${out.resource.package.absolute.file}" /> <arg value="--auto-add-overlay" /> </exec> </target>
android proguard混淆后,效果和原来的不一致
最近在学习android proguard,但是看了很多的博客和demo,自己练手的时候出现的问题久久不会解决,郁闷已久,虽求助大家。 问题描述:一个android动画的demo,没有混淆之后效果都能实现,但是混淆之后动画效果都没有效果了。 我引用了一个第三方jar包:afinal_0.5.1_bin.jar proguard-project.txt: -dontoptimize -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -dontwarn -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keepattributes InnerClasses,LineNumberTable -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class com.android.vending.licensing.ILicensingService -keep class net.tsz.afinal.**{*;} -keep class android.webkit.**{*;} -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class **.R$* { *; } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } ```MainActivity.java package com.example.animation; import net.tsz.afinal.FinalActivity; import net.tsz.afinal.annotation.view.ViewInject; import android.content.Intent; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.View; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.view.animation.Animation.AnimationListener; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends FinalActivity { @ViewInject(id = R.id.btn_scale_anim, click = "onClick") private Button mBtnScale; @ViewInject(id = R.id.btn_alpha_anim, click = "onClick") private Button mBtnAlpha; @ViewInject(id = R.id.btn_rotate_anim, click = "onClick") private Button mBtnRotate; @ViewInject(id = R.id.btn_translate_anim, click = "onClick") private Button mBtnTranslate; @ViewInject(id = R.id.btn_continue_one, click = "onClick") private Button mBtnContinueOne; @ViewInject(id = R.id.btn_continue_two, click = "onClick") private Button mBtnContinueTwo; @ViewInject(id = R.id.btn_flash, click = "onClick") private Button mBtnFlash; @ViewInject(id = R.id.btn_shake, click = "onClick") private Button mBtnShake; @ViewInject(id = R.id.btn_switch, click = "onClick") private Button mBtnSwitch; @ViewInject(id = R.id.btn_layout, click = "onClick") private Button mBtnLayout; @ViewInject(id = R.id.btn_frame, click = "onClick") private Button mBtnFrame; @ViewInject(id = R.id.btn_shake, click = "onClick") private Button mBntShake; @ViewInject(id = R.id.iv_image) private ImageView mIvImage; private Animation mAnim; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View v) { switch (v.getId()) { // 缩放 case R.id.btn_scale_anim: mAnim = AnimationUtils.loadAnimation(this, R.anim.scale); mIvImage.startAnimation(mAnim); break; // 透明度 case R.id.btn_alpha_anim: mAnim = AnimationUtils.loadAnimation(this, R.anim.alpha); mIvImage.startAnimation(mAnim); break; // 平移 case R.id.btn_translate_anim: mAnim = AnimationUtils.loadAnimation(this, R.anim.translate); mIvImage.startAnimation(mAnim); break; // 旋转 case R.id.btn_rotate_anim: mAnim = AnimationUtils.loadAnimation(this, R.anim.rotate); mIvImage.startAnimation(mAnim); break; // 组合动画,用监听器的方式 case R.id.btn_continue_one: mAnim = AnimationUtils.loadAnimation(this, R.anim.translate); mIvImage.startAnimation(mAnim); final Animation tAnim = AnimationUtils.loadAnimation(this, R.anim.rotate); mAnim.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { mIvImage.startAnimation(tAnim); } }); break; // 组合动画,用xml文件的方式 case R.id.btn_continue_two: mAnim = AnimationUtils.loadAnimation(this, R.anim.continue_two); mIvImage.startAnimation(mAnim); break; // 闪动效果 case R.id.btn_flash: AlphaAnimation alphaAnim = new AlphaAnimation(0.1f, 1.0f); alphaAnim.setDuration(100); alphaAnim.setRepeatCount(10); alphaAnim.setRepeatMode(Animation.REVERSE); mIvImage.startAnimation(alphaAnim); break; // 两个activity跳转的动画效果 case R.id.btn_switch: startActivity(new Intent(this, SecondActivity.class)); overridePendingTransition(R.anim.aty_in, R.anim.aty_out); break; // 布局动画 case R.id.btn_layout: startActivity(new Intent(this, ListActivity.class)); break; // 帧动画 case R.id.btn_frame: // 怎么控制帧动画的重复次数 mIvImage.setImageResource(R.drawable.anim_list); AnimationDrawable animDrawable = (AnimationDrawable) mIvImage.getDrawable(); animDrawable.start(); break; case R.id.btn_shake: TranslateAnimation translateAnim = new TranslateAnimation(-10, 10, -10, 10); translateAnim.setDuration(30); translateAnim.setRepeatCount(10); translateAnim.setRepeatMode(Animation.REVERSE); mIvImage.startAnimation(translateAnim); break; } } } ```
安卓开发:org.gradle.tooling.BuildException:
在真机上出现这个异常 org.gradle.tooling.BuildException: Exception while generating InstantRun main resources APK ![在真机上运行出现这个异常](https://img-ask.csdn.net/upload/201804/25/1524669025_349170.png) 我的清单文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.example.lenovo.mynotebook"> <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.example.lenovo.mynotebook.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" /> </provider> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" tools:ignore="ProtectedPermissions" /> <uses-permission android:name="android.permission.CAMERA" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:windowSoftInputMode="adjustUnspecified|stateHidden" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".edit_activity" android:windowSoftInputMode="adjustUnspecified|stateHidden" > </activity> </application> </manifest> ``` 我的build.gradle(Project) // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } ``` ``` 我的build.gradle(app) ```apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "com.example.lenovo.mynotebook" minSdkVersion 15 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support.constraint:constraint-layout:1.0.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' implementation 'com.android.support:support-v4:27.1.1' } ``` ``` ``` ```
Maven多渠道打包报错,求解!
## 这是异常: D:\makeApk\MavenBuild>D:\makeApk\MavenBuild\build.bat [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building mavenbuild-test 1.0.0 [INFO] ------------------------------------------------------------------------ Exception in thread "pool-1-thread-1" java.lang.NoClassDefFoundError: org/eclips e/aether/spi/connector/Transfer$State at org.eclipse.aether.connector.wagon.WagonRepositoryConnector$GetTask.r un(WagonRepositoryConnector.java:608) at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(Runn ableErrorForwarder.java:67) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:615) at java.lang.Thread.run(Thread.java:724) [INFO] ------------------------------------------------------------------------C aused by: java.lang.ClassNotFoundException: org.eclipse.aether.spi.connector.Tra nsfer$State at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass( SelfFirstStrategy.java:50)[INFO] BUILD FAILURE at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadCl ass(ClassRealm.java:271)[INFO] ------------------------------------------------- ----------------------- at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm .java:247) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm .java:239) ... 5 more [INFO] Total time: 2.117 s [INFO] Finished at: 2015-07-23T11:06:57+08:00 [INFO] Final Memory: 14M/213M [INFO] ------------------------------------------------------------------------ --------------------------------------------------- constituent[0]: file:/D:/Soft/apache-maven-3.3.3/lib/aether-api-1.0.2.v20150114. jar constituent[1]: file:/D:/Soft/apache-maven-3.3.3/lib/aether-connector-basic-1.0. 2.v20150114.jar constituent[2]: file:/D:/Soft/apache-maven-3.3.3/lib/aether-impl-1.0.2.v20150114 .jar constituent[3]: file:/D:/Soft/apache-maven-3.3.3/lib/aether-spi-1.0.2.v20150114. jar constituent[4]: file:/D:/Soft/apache-maven-3.3.3/lib/aether-transport-wagon-1.0. 2.v20150114.jar constituent[5]: file:/D:/Soft/apache-maven-3.3.3/lib/aether-util-1.0.2.v20150114 .jar constituent[6]: file:/D:/Soft/apache-maven-3.3.3/lib/aopalliance-1.0.jar constituent[7]: file:/D:/Soft/apache-maven-3.3.3/lib/cdi-api-1.0.jar constituent[8]: file:/D:/Soft/apache-maven-3.3.3/lib/commons-cli-1.2.jar constituent[9]: file:/D:/Soft/apache-maven-3.3.3/lib/commons-io-2.2.jar constituent[10]: file:/D:/Soft/apache-maven-3.3.3/lib/commons-lang-2.6.jar constituent[11]: file:/D:/Soft/apache-maven-3.3.3/lib/guava-18.0.jar constituent[12]: file:/D:/Soft/apache-maven-3.3.3/lib/javax.inject-1.jar constituent[13]: file:/D:/Soft/apache-maven-3.3.3/lib/jsoup-1.7.2.jar constituent[14]: file:/D:/Soft/apache-maven-3.3.3/lib/jsr250-api-1.0.jar constituent[15]: file:/D:/Soft/apache-maven-3.3.3/lib/maven-aether-provider-3.3. 3.jar constituent[16]: file:/D:/Soft/apache-maven-3.3.3/lib/maven-artifact-3.3.3.jar constituent[17]: file:/D:/Soft/apache-maven-3.3.3/lib/maven-builder-support-3.3. 3.jar constituent[18]: file:/D:/Soft/apache-maven-3.3.3/lib/maven-compat-3.3.3.jar constituent[19]: file:/D:/Soft/apache-maven-3.3.3/lib/maven-core-3.3.3.jar constituent[20]: file:/D:/Soft/apache-maven-3.3.3/lib/maven-embedder-3.3.3.jar constituent[21]: file:/D:/Soft/apache-maven-3.3.3/lib/maven-model-3.3.3.jar constituent[22]: file:/D:/Soft/apache-maven-3.3.3/lib/maven-model-builder-3.3.3. jar constituent[23]: file:/D:/Soft/apache-maven-3.3.3/lib/maven-plugin-api-3.3.3.jar constituent[24]: file:/D:/Soft/apache-maven-3.3.3/lib/maven-repository-metadata- 3.3.3.jar constituent[25]: file:/D:/Soft/apache-maven-3.3.3/lib/maven-settings-3.3.3.jar constituent[26]: file:/D:/Soft/apache-maven-3.3.3/lib/maven-settings-builder-3.3 .3.jar constituent[27]: file:/D:/Soft/apache-maven-3.3.3/lib/org.eclipse.sisu.inject-0. 3.0.jar constituent[28]: file:/D:/Soft/apache-maven-3.3.3/lib/org.eclipse.sisu.plexus-0. 3.0.jar constituent[29]: file:/D:/Soft/apache-maven-3.3.3/lib/plexus-cipher-1.7.jar constituent[30]: file:/D:/Soft/apache-maven-3.3.3/lib/plexus-component-annotatio ns-1.5.5.jar constituent[31]: file:/D:/Soft/apache-maven-3.3.3/lib/plexus-interpolation-1.21. jar constituent[32]: file:/D:/Soft/apache-maven-3.3.3/lib/plexus-sec-dispatcher-1.3. jar constituent[33]: file:/D:/Soft/apache-maven-3.3.3/lib/plexus-utils-3.0.20.jar constituent[34]: file:/D:/Soft/apache-maven-3.3.3/lib/sisu-guice-3.2.5-no_aop.ja r constituent[35]: file:/D:/Soft/apache-maven-3.3.3/lib/slf4j-api-1.7.5.jar constituent[36]: file:/D:/Soft/apache-maven-3.3.3/lib/slf4j-simple-1.7.5.jar constituent[37]: file:/D:/Soft/apache-maven-3.3.3/lib/wagon-file-2.9.jar constituent[38]: file:/D:/Soft/apache-maven-3.3.3/lib/wagon-http-2.9-shaded.jar constituent[39]: file:/D:/Soft/apache-maven-3.3.3/lib/wagon-http-shared-2.9.jar constituent[40]: file:/D:/Soft/apache-maven-3.3.3/lib/wagon-provider-api-2.9.jar constituent[41]: file:/D:/Soft/apache-maven-3.3.3/conf/logging/ --------------------------------------------------- Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/aether/sp i/connector/Transfer$State at org.eclipse.aether.connector.wagon.WagonRepositoryConnector$GetTask.r un(WagonRepositoryConnector.java:608) at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(Runn ableErrorForwarder.java:67) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:615) at java.lang.Thread.run(Thread.java:724) Caused by: java.lang.ClassNotFoundException: org.eclipse.aether.spi.connector.Tr ansfer$State at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass( SelfFirstStrategy.java:50) at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadCl ass(ClassRealm.java:271) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm .java:247) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm .java:239) ... 5 more 系统找不到指定的路径。 子目录或文件 assets 已经存在。 'assets/common.properties'... 正在添加: META-INF/MANIFEST.MF 正在添加: META-INF/DREAMZON.SF 正在添加: META-INF/DREAMZON.RSA 正在签名: assets/common.properties 子目录或文件 assets 已经存在。 'assets/common.properties'... 正在添加: META-INF/MANIFEST.MF 正在添加: META-INF/DREAMZON.SF 正在添加: META-INF/DREAMZON.RSA 正在签名: assets/common.properties 子目录或文件 assets 已经存在。 'assets/common.properties'... 正在添加: META-INF/MANIFEST.MF 正在添加: META-INF/DREAMZON.SF 正在添加: META-INF/DREAMZON.RSA 正在签名: assets/common.properties D:\makeApk> ## 这是pom.xml: <?xml version="1.0" encoding="utf-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example.mavenbuild</groupId> <artifactId>mavenbuild-test</artifactId> <version>1.0.0</version> <packaging>apk</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>4.1.1.4</version> <scope>provided</scope> </dependency> </dependencies> <build> <sourceDirectory>src</sourceDirectory> <finalName>${project.artifactId}</finalName> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.8.2</version> <extensions>true</extensions> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <configuration> <sdk> <!-- platform as api level (api level 16 = platform 4.1)--> <platform>16</platform> </sdk> <sign> <debug>false</debug> </sign> </configuration> </plugin> </plugins> </build> </project>
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问