Articles of java

意外的顶级例外:com.android.dex.DexException

我正在尝试在AndroidStudio中将barcodefraglibv2集成到我的Android应用程序中。 我试图将libs core.jar和barcodelib.jar复制到libs目录中。 但是,当我尝试运行应用程序,我得到以下错误 Error:Execution failed for task ':Blok:dexDebug'. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: /home/backman/android/sdk/build-tools/android-4.4.2/dx –dex –output /home/backman/AndroidStudioProjects/Blok/Blok/build/dex/debug /home/backman/AndroidStudioProjects/Blok/Blok/build/classes/debug /home/backman/AndroidStudioProjects/Blok/Blok/build/dependency-cache/debug /home/backman/AndroidStudioProjects/Blok/Blok/build/pre-dexed/debug/core-bcdbe5f84dd399255abb34d14ce9def109db2534.jar Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/google/zxing/BarcodeFormat; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103) […]

Android GPS在查询中的位置数据不正确

我没有使用这个模拟位置…事实上,上个星期的代码工作正常。 我有一个应用程序,收集GPS数据,并吐出一个谷歌地图链接使用应用程序本身生成的X,Y坐标。 我不是100%确定它为什么不按照它应该的方式工作,但是当我要求应用程序根据手机提供的GPS位置创build谷歌地图链接时,它告诉我我距离我的5到6个街区起源(我当时在哪里)不是我想做的事情 的已知,: 我有适当的权限设置 所有的代码上周工作得很好 以下是收集GPS信息的代码: Toast.makeText(context, "Gathering GPS Data…", Toast.LENGTH_SHORT).show(); gps = new gpsTracker(Settings.this); if(gps.canGetLocation()){ try{ gps.getLocation(); lon = gps.getLongitude(); lat = gps.getLatitude(); Toast.makeText(getApplicationContext(), "Your location is – \nlat: " + lat + "\nlon: " + lon, Toast.LENGTH_LONG).show(); } catch(Exception e){} } else{ gps.showSettingsAlert(); } 以上所有课程都是从以下课程中抽取的: import android.app.AlertDialog; import android.app.Service; import android.content.Context; import […]

Android – 如何只允许一定数量的小数位

你知道任何方法,以确保用户只能input最大小数位数字。 我不知道如何解决这个问题。 在MS SQL数据库中,我将从我的应用程序发送数据我有这种types的decimal(8,3)列decimal(8,3)现在考虑最终要存储我想要在Android中validation的值的列的数据types,我考虑过这两种情况: 如果用户input一个没有小数的数字,则最大位数必须是8 如果用户input一个带小数的数字,则最大的数字位数必须是8(包括小数点右边的数字) 现在我确定了第一个案子,但是对第二个案子没有太多的了解。 保持固定的最大位数(例如,总是8)是否正确? 还是应该考虑在小数点的左边和右边最多允许8个数字? 无论哪种方式,这是我一直在Android尝试: mQuantityEditText.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) { String str = mQuantityEditText.getText().toString(); DecimalFormat format = (DecimalFormat) DecimalFormat .getInstance(); DecimalFormatSymbols symbols = format.getDecimalFormatSymbols(); char sep = symbols.getDecimalSeparator(); int indexOFdec = str.indexOf(sep); if (indexOFdec >= 0) { if (str.substring(indexOFdec, str.length() – 1).length() > 3) { s.replace(0, […]

Android Studio Gradle CreateProcess错误= 2

我在Android Studio新。 我使用的是Android Studio 1.0 RC 2 Build#AI-135.1611497和JDK:1.8.0_25。 试图导入项目,并得到错误。 已经尝试删除.gradle .. Gradle设置为使用默认的gradle包装。 任何想法来解决它? 2014-12-02 10:52:19,643 [3351320] INFO – s.plugins.gradle.GradleManager – Instructing gradle to use java from C:\Program Files\Java\jdk1.8.0_25\ 2014-12-02 10:52:19,647 [3351324] INFO – s.plugins.gradle.GradleManager – Instructing gradle to use java from C:\Program Files\Java\jdk1.8.0_25\ 2014-12-02 10:52:19,649 [3351326] INFO – ls.idea.gradle.util.GradleUtil – Looking for embedded Maven repo […]

如何使用@ ActivityInfo.ScreenOrientation

我试图创build一个方法,返回给我的屏幕取决于依赖的设备是手持式还是平板电脑。 public int getScreenOrientation(boolean isTablet){ if(isTablet){ return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; } else { return ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; } } 但是,当我使用setRequestedOrientation(getScreenOrientation)); 我得到一个lint错误Must be one of: ActivityInfo.SCREEN_ORIENTATION_………其中我可以压制,但看起来不干净的代码。 所以我发现, getRequestedOrientation使用@ActivityInfo.ScreenOrientation注解。 所以我试图自己使用它: @ActivityInfo.ScreenOrientation public int getScreenOrientation(boolean isTablet){ . . . } 但IDE给了我一个错误,指出无法findAnnotation @ActivityInfo.ScreenOrientation 。 但是它在官方的android源代码中被公开。

告诉Proguard在方法上保留注释

我使用我自己的注释: @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD, ElementType.TYPE}) public @interface Loggable { } 并使用Proguard进行混淆。 我在Proguardconfiguration中使用-keepattributes *Annotation*来保留注释。 在运行时,当我使用someClass.getAnnotation(Loggable.class)从注释类中检索注解时,所有东西都可以使用 – 我检索了注释的非空实例。 但是,当我想要应用相同的一些类的注释方法 ,我从someMethod.getAnnotation(Loggable.class)检索null。 Proguard是从方法中删除注释吗? 我怎么告诉它不这样做? 我正在使用Proguard 4.7。

IntelliJ /结构search:删除无用的方法,只调用超级方法

在我的一个Android项目中(但不一定与Android绑定),我有相当多的方法调用,除了炸毁代码,可以自动删除。 例子: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return super.onKeyDown(keyCode, event); } @Override public boolean onCreateOptionsMenu(Menu menu) { return super.onCreateOptionsMenu(menu); } @Override public void onDestroy() { super.onDestroy(); } 我无法find任何检查帮助我自动删除这些expression式,所以我尝试了结构search。 我到目前为止的尝试:我复制了'注释的方法'的模板,并做了2个小的改变。 $ Annotation $改为发生= 1,text = Override 添加一个$ statement $variables与发生= 1 模板代码: class $Class$ { @$Annotation$( ) $MethodType$ $MethodName$($ParameterType$ $ParameterName$) { $Statement$; } } […]

如何在audio均衡器中添加立体声,高音选项?

我正在尝试一个小型的audio歌曲均衡器。 我想添加其中的高音,立体声像在Poweramp播放器中的选项。 我用5个乐队成功实现了equlizer,像这样: public class FragmentEqualizer extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { super.onCreateView(inflater,container,savedInstanceState); equalizer = new EQ(getActivity(), new Equalizer(0,com.androidhive.musicplayer.AndroidBuildingMusicPlayerActivity.mp.getAudioSessionId())); for(Bar bar : eqBars) bar.setActiveEQ(); maximum= EQ.getEqualizer().getBandLevelRange()[1]; minimum= EQ.getEqualizer().getBandLevelRange()[0]; } public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); lvforprest.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view,int position, long id) { […]

Android Webview页面无法正确加载页面

我正在尝试使用Android Studio模拟器(Nexus 5)将页面加载到Android应用程序webview中。 但是,页面加载不正确,卡在加载屏幕上。 该页面确实需要GeoLocation权限,但是我已经启用了它们。 以下是我的代码和应用程​​序的XML。 MainActivity.java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView webview; setContentView(R.layout.activity_main); webview = (WebView)findViewById(R.id.help_webview); //webview use to call own site webview.setWebViewClient(new WebViewClient()); webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setDomStorageEnabled(true); webview.getSettings().setAllowContentAccess(true); webview.getSettings().setAllowFileAccess(true); webview.getSettings().setAppCacheEnabled(true); webview.getSettings().setAllowUniversalAccessFromFileURLs(true); webview.getSettings().setAllowContentAccess(true); webview.getSettings().setGeolocationEnabled(true); webview.getSettings().setDatabaseEnabled(true); webview.setWebChromeClient(new WebChromeClient() { public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) { // callback.invoke(String origin, boolean allow, boolean remember); callback.invoke(origin, […]

Java和Android的正则expression式差异

美好的一天! 我有一个正则expression式模式: Pattern p = Pattern.compile("^[a-zA-Z_\\$][\\w\\$]*(?:\\.[a-zA-Z_\\$][\\w\\$]*)*$"); 它应该告诉我,如果Java / Android包名称是合法的或不。 它在桌面Java工作正常,但它在Android设备上的失败 可以说我有一些包名: ". .", "ПАвыапЫВАПыва", "com.mxtech.ffmpeg.v7_neon", … testing应该显示唯一有效的包是“com.mxtech.ffmpeg.v7_neon”,但是也显示testingstring " _ПАвыапЫВАПыва\_ " 已validation。 为什么? (这是西里尔文。) Android和桌面实现有什么区别?